恐怕还有更多菜鸟问题!
我有一个应用程序,到目前为止,我需要将片段中的一个按钮用作播放暂停按钮,目前我还没有从应用程序中获得任何音频,但它可以稳定地放在手机上。媒体播放器有自己的服务:
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
}
}
到目前为止,该应用程序已启动,并且该按钮单击了,但是它不播放音乐文件,并且该按钮也没有启动它...我需要怎么做才能获得控制音乐的按钮?>