在安卓2.3.3播放音乐睡眠/待机模式(Playing music in sleep/standby

2019-07-03 18:59发布

我想开发一个简单的媒体播放器播放MP3的SD卡/音乐目录的公司为Android 2.3.3。 问题是,当我按下电源按钮或当设备进入睡眠状态,音乐停止。 从谷歌搜索和搜索计算器,我发现我需要使用唤醒锁定选项,但无论我做什么,音乐当设备进入睡眠状态(在模拟器上按下F7停止音乐和)停止。 由于我一直在争取本作的时间太长了,我想我会寻求帮助。 我会衷心感谢任何输入。 谢谢。 这里是我的代码:

FileInputStream fis = new FileInputStream(songList.get(0));
FileDescriptor fd = fis.getFD();
if (mediaPlayer != null) {
 if (mediaPlayer.isPlaying()) {
  mediaPlayer.release();
  mediaPlayer = null;
 }
}

mediaPlayer = new MediaPlayer();
mediaPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);
mediaPlayer.setDataSource(fd);
mediaPlayer.prepare();
playPauseButton.setImageResource(android.R.drawable.ic_media_pause);
mediaPlayer.seekTo(songPosition);
mediaPlayer.start();
appMsg.setText(songList.get(0));

Answer 1:

我想你应该这样你创建一个服务,把你的媒体码在它并将其安装使用服务的启动和停止按钮,也许财产以后这样在后台运行的媒体:

public class MediaPlayerService extends Service {
     MediaPlayer myMediaPlayer;

     @Override
     public IBinder onBind(Intent intent) {
            // TODO Auto-generated method stub
            return null;
     }
     @Override
     public void onCreate() {
         FileInputStream fis = new FileInputStream(songList.get(0));
         FileDescriptor fd = fis.getFD();

         if (mediaPlayer != null) {
           if (mediaPlayer.isPlaying()) {
               mediaPlayer.release();
               mediaPlayer = null;
              }
            }

         mediaPlayer = new MediaPlayer();
         mediaPlayer.setDataSource(fd);
         mediaPlayer.prepare();
         playPauseButton.setImageResource(android.R.drawable.ic_media_pause);
         mediaPlayer.seekTo(songPosition);
         appMsg.setText(songList.get(0));
     }
     @Override
     public void onStart(Intent intent, int startid) {
         myMediaPlayer.start();
     }
     @Override
     public void onDestroy() {
         myMediaPlayer.stop();
     }
}

之后,你当按下启动按钮启动该服务使用梅索德startService和使用梅索德停止stopService在你的Activity类



文章来源: Playing music in sleep/standby mode in Android 2.3.3