媒体播放器无法播放

时间:2020-05-23 21:03:38

标签: android android-studio android-fragments kotlin android-mediaplayer

恐怕还有更多菜鸟问题!

我有一个应用程序,到目前为止,我需要将片段中的一个按钮用作播放暂停按钮,目前我还没有从应用程序中获得任何音频,但它可以稳定地放在手机上。媒体播放器有自己的服务:

class playerService : Service() {

var isPlaying:Boolean? = null
val player = MediaPlayer()

inner class playerServiceBinder : Binder()
{
    fun getService() : playerService
    {
        return this@playerService // the outer 'this'
    }
}

val mediaFile =      File("${Environment.getExternalStorageDirectory().getAbsolutePath()}/SD_card/Music/Over_the_Horizon.mp3")
override fun onBind(intent: Intent): IBinder? {

   // player.setAudioStreamType(AudioManager.STREAM_MUSIC)
//        player.setDataSource(applicationContext, Uri.fromFile(mediaFile))

    return playerServiceBinder()
}

override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {

    // do something, e.g. start thread, AsyncTask, Anko doAsync, etc.
    player.setAudioStreamType(AudioManager.STREAM_MUSIC)
    player.setDataSource(applicationContext, Uri.fromFile(mediaFile))
    player.setOnPreparedListener { player ->
        player.start()
    isPlaying = true
    }
    player.prepareAsync()
    return START_STICKY

}


fun playPause(){
    if (isPlaying == true){
        player.stop()
    }else{
        player.start()
    }
}
}

以下是片段:

class HomeFragment : Fragment() {

private lateinit var homeViewModel: HomeViewModel

override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
): View? {

    homeViewModel =
            ViewModelProviders.of(this).get(HomeViewModel::class.java)
    val root = inflater.inflate(R.layout.fragment_home, container, false)
    val textView: TextView = root.findViewById(R.id.text_home)
    homeViewModel.text.observe(viewLifecycleOwner, Observer {
        textView.text = it
    })
    root.btn_PlayPause.setOnClickListener{ view ->
        playerService().playPause()
    }

    return root
}
}

到目前为止,该应用程序已启动,并且该按钮单击了,但是它不播放音乐文件,并且该按钮也没有启动它...我需要怎么做才能获得控制音乐的按钮?

0 个答案:

没有答案