如何使用屏幕关闭后台播放选项播放android收音机

ghhaqwfi  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(863)

如何使用屏幕关闭后台播放选项播放android收音机。我的应用程序运行良好,没有backgound播放选项。但我想给我的应用程序的背景播放选项,即当用户关闭应用程序,收音机应该继续播放,直到用户停止它。
我还禁用了xml文件中的screen off选项android:keepscreenon=“真”选项,但我想删除这个选项,并保持手机屏幕关闭和发挥我的应用程序在后台。
这是我的密码

Button BPlay;
String stream = "http://stream.zeno.fm/hmzuvfwn9k0uv";
MediaPlayer mediaPlayer;

boolean prepared = false;
boolean started = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_radio);

 BPlay = (Button) findViewById(R.id.b_play);
    BPlay.setEnabled(false);
    BPlay.setText("Loading.....");

    mediaPlayer = new MediaPlayer();
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    new PlayerTask().execute(stream);

    BPlay.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            if (started){
                started = false;
                mediaPlayer.pause();
                BPlay.setText("PLAY");

            } else {
                started = true;
                mediaPlayer.start();
                BPlay.setText("PAUSE");

            }

        }
    });
}

 class PlayerTask extends AsyncTask<String, Void, Boolean> {
     @Override
     protected Boolean doInBackground(String... strings) {

         try {
             mediaPlayer.setDataSource(strings [0]);
             mediaPlayer.prepare();
             prepared = true;
         } catch (IOException e) {
             e.printStackTrace();
         }

         return prepared;
     }

     @Override
     protected void onPostExecute(Boolean aBoolean) {
         super.onPostExecute(aBoolean);
         BPlay.setEnabled(true);
         BPlay.setText("PLAY");
     }

 }

 @Override
 protected void onPause() {
     super.onPause();
     if (started){
         mediaPlayer.pause();
     }
 }

 @Override
 protected void onResume() {
     super.onResume();

     if (started){
         mediaPlayer.start();
     }
 }

 @Override
 protected void onDestroy() {
     super.onDestroy();
     if (prepared){
         mediaPlayer.release();

     }
 }

}

mjqavswn

mjqavswn1#

为了让您在应用程序处于后台时播放媒体,您需要 MediaSession 后台服务并行运行。
tltr,这里有一个来自google的关于如何做到这一点的基本教程。

相关问题