MediaPlayer不播放音频吗?

时间:2020-05-23 13:46:32

标签: android kotlin android-service android-mediaplayer

嗨,我在使用Android Media Player播放媒体时遇到问题。该应用已加载,我可以单击该按钮,但该应用没有任何操作,它应该开始播放预定义的音频片段... 这是播放器服务

class MusicService : Service(), MediaPlayer.OnPreparedListener {
    private var pause:Boolean = false
val player = MediaPlayer()
    inner class MusicServiceBinder : Binder()
    {
    fun getService() : MusicService
    {
        return this@MusicService // the outer 'this'
    }
}
override fun onBind(intent: Intent) : IBinder {

    return MusicServiceBinder()
}
val mediaFile =  File("${Environment.getExternalStorageDirectory().getAbsolutePath()}/SD card/Music/Over_the_Horizon.mp3")
override fun onPrepared(mp: MediaPlayer?) {
    TODO("Not yet implemented")
    //val player = MediaPlayer()
    player.setAudioStreamType(AudioManager.STREAM_MUSIC)
    player.setDataSource(applicationContext, Uri.fromFile(mediaFile))
    player.prepare();
    mp?.start()

    player.prepareAsync()

}
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
    val action = intent.action
    player.start()
    return START_STICKY
}

}

这是具有播放按钮的片段...

class PlayerFragment : Fragment() {

companion object {
    fun newInstance() = PlayerFragment()
}

private lateinit var viewModel: PlayerViewModel

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    return inflater.inflate(R.layout.player_fragment, container, false)
    MusicService().MusicServiceBinder()
}

override fun onActivityCreated(savedInstanceState: Bundle?) {
    super.onActivityCreated(savedInstanceState)
    viewModel = ViewModelProviders.of(this).get(PlayerViewModel::class.java)
    // TODO: Use the ViewModel
    Btn_playPause.setOnClickListener {
        MusicService().player.start()
    }
}


}

和完整性的主类...

class MainActivity : AppCompatActivity() {
//overide
 override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

Intent(this, MusicService::class.java).also { intent ->
    startService(intent)
}

    val db = SongDatabase.getDatabase(application)
val serviceConn = object: ServiceConnection {
    override fun onServiceConnected(name: ComponentName?, binder: IBinder?) {
        var service = ((binder as MusicService.MusicServiceBinder).getService())
    }

    override fun onServiceDisconnected(name: ComponentName?) {
    }
}
/* var onClick = View.OnClickListener(){view ->
    var mainActivity : activity_main= activity as
    mainActivity.player_fragment()
}*/
}


}

我可能正在做一些愚蠢的事情,但我自己看不到! 任何帮助将不胜感激!

0 个答案:

没有答案
相关问题