我想开发一个简单的媒体播放器播放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));
我想你应该这样你创建一个服务,把你的媒体码在它并将其安装使用服务的启动和停止按钮,也许财产以后这样在后台运行的媒体:
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类