gpt4 book ai didi

android - 在 Android 2.3.3 中以 sleep /待机模式播放音乐

转载 作者:行者123 更新时间:2023-11-29 16:10:58 25 4
gpt4 key购买 nike

我正在尝试开发一个简单的媒体播放器来播放 Android 2.3.3 的 sdcard/music 目录中的 mp3。问题是当我按下电源按钮或设备进入休眠状态时,音乐停止了。通过谷歌搜索和搜索 stackoverflow,我发现我需要使用唤醒锁定选项,但无论我做什么,当设备进入休眠状态时音乐都会停止(在模拟器上按 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 启动该服务,并使用 Activity 类中的方法停止服务 stopService

关于android - 在 Android 2.3.3 中以 sleep /待机模式播放音乐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13361280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com