Как проигрывать аудио в фоновом режиме - android - PullRequest
0 голосов
/ 24 марта 2020

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

// Start the media player
        playBtn.setOnClickListener {
            if (pause && mediaPlayer.isPlaying) {
                playBtn.setImageResource(R.drawable.ic_play_circle_filled);
                mediaPlayer.pause()
            } else {
                playBtn.setImageResource(R.drawable.pausebtn);

                if (pause) {
                    mediaPlayer.seekTo(mediaPlayer.currentPosition)
                    mediaPlayer.start()
                } else {
                    mediaPlayer = MediaPlayer.create(applicationContext, Uri.parse(intent.getStringExtra("audio")))
                    mediaPlayer.start()
                }
                initializeSeekBar()

                mediaPlayer.setOnCompletionListener {
                    Toast.makeText(this, "end", Toast.LENGTH_SHORT).show()
                }
            }

            pause = !pause;
        }

        prevBtn.setOnClickListener {
            try {
                mediaPlayer.seekTo(mediaPlayer.currentPosition + (-10*1000))

            } catch(e: UninitializedPropertyAccessException) {
                // media player is not initialized
            }
        }


        nextBtn.setOnClickListener {
            try {
                mediaPlayer.seekTo(mediaPlayer.currentPosition + (10*1000))
            } catch(e: UninitializedPropertyAccessException) {
                // media player is not initialized
            }
        }

        // Seek bar change listener
        seek_bar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
            override fun onProgressChanged(seekBar: SeekBar, i: Int, b: Boolean) {
                if (b) {
                    try {
                        mediaPlayer.seekTo(i * 1000)
                    } catch(e: UninitializedPropertyAccessException) {
                        // media player is not initialized
                    }
                }
            }

            override fun onStartTrackingTouch(seekBar: SeekBar) {
            }

            override fun onStopTrackingTouch(seekBar: SeekBar) {
            }
        })

1 Ответ

3 голосов
/ 24 марта 2020

Для того, чтобы музыка c воспроизводилась в фоновом режиме, вы должны реализовать MediaPlayer API как сервис. Вот пошаговое руководство о том, как вы можете реализовать то же самое - создание приложения медиаплеера

Этот пример приведен в Java, надеюсь, вы сможете понять и интерпретировать в kotlin, иначе используйте встроенный конвертер java в Kotlin в Android studio.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...