Как играть фоновую музыку во всех действиях, используя Kotlin? - PullRequest
0 голосов
/ 23 сентября 2019

Как я могу воспроизводить музыкальный файл в фоновом режиме через все действия с помощью Kotlin?Я искал везде, но я нашел решения для Java, а не для Kotlin.

Я пытался использовать эту функцию, но я не знаю, как ее использовать:

fun playSound() {
    try {
        if (m.isPlaying()) {
            m.stop()
            m.release()
            //m = MediaPlayer()
        }

        val descriptor = assets.openFd("backgroundsound1.mp3")
        m.setDataSource(descriptor.fileDescriptor, descriptor.startOffset, descriptor.length)
        descriptor.close()

        m.prepare()
        m.setVolume(1f, 1f)
        m.setLooping(true)
        m.start()
    } catch (e: Exception) {
        e.printStackTrace()
    }

}

1 Ответ

1 голос
/ 23 сентября 2019

Here 'код в коде kotlin Воспроизведение фоновой музыки во всех видах деятельности

class BackgroundSoundService : Service() {
    internal lateinit var player: MediaPlayer
    override fun onBind(arg0: Intent): IBinder? {

        return null
    }

    override fun onCreate() {
        super.onCreate()
       val afd = applicationContext.assets.openFd("backgroundsound1.wav") as AssetFileDescriptor
    val player = MediaPlayer()
    player.setDataSource(afd.fileDescriptor)
        player.isLooping = true // Set looping
        player.setVolume(100f, 100f)

    }

    override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
        player.start()
        return 1
    }

    override fun onStart(intent: Intent, startId: Int) {
        // TO DO
    }

    fun onUnBind(arg0: Intent): IBinder? {
        // TO DO Auto-generated method
        return null
    }

    fun onStop() {

    }

    fun onPause() {

    }

    override fun onDestroy() {
        player.stop()
        player.release()
    }

    override fun onLowMemory() {

    }

    companion object {
        private val TAG: String? = null
    }
}
...