在安卓2.3.3睡眠播放音乐/待机模式 [英] Playing music in sleep/standby mode in Android 2.3.3
问题描述
我想开发一个简单的媒体播放器播放MP3的SD卡的/音乐目录的为Android 2.3.3。问题是,当我打的电源按钮或当设备进入睡眠状态,音乐停止。从谷歌搜索和搜索计算器,我发现我需要使用唤醒锁选项,但无论我做什么,音乐停止时,该设备进入睡眠状态(在模拟器上pressing F7停止音乐,以及) 。因为我一直在争取本作的时间太长了,我想我会寻求帮助。我衷心AP preciate任何输入。谢谢。这是我的code:
的FileInputStream FIS =新的FileInputStream(songList.get(0));
的FileDescriptor FD = fis.getFD();
如果(媒体播放器!= NULL){
如果(mediaPlayer.isPlaying()){
mediaPlayer.release();
媒体播放器= NULL;
}
}
媒体播放器=新的MediaPlayer();
mediaPlayer.setWakeMode(getApplicationContext(),PowerManager.PARTIAL_WAKE_LOCK);
mediaPlayer.setDataSource(FD);
媒体播放器prepare()。
playPauseButton.setImageResource(android.R.drawable.ic_media_pause);
mediaPlayer.seekTo(songPosition);
mediaPlayer.start();
appMsg.setText(songList.get(0));
我想你应该运行的媒体使用后台服务 所以,你创建一个服务,并把你的媒体code它,将其安装到启动和停止按钮,也许财产以后是这样的:
公共类MediaPlayerService延伸服务{
MediaPlayer的myMediaPlayer;
@覆盖
公众的IBinder onBind(意向意图){
// TODO自动生成方法存根
返回null;
}
@覆盖
公共无效的onCreate(){
的FileInputStream FIS =新的FileInputStream(songList.get(0));
的FileDescriptor FD = fis.getFD();
如果(媒体播放器!= NULL){
如果(mediaPlayer.isPlaying()){
mediaPlayer.release();
媒体播放器= NULL;
}
}
媒体播放器=新的MediaPlayer();
mediaPlayer.setDataSource(FD);
媒体播放器prepare()。
playPauseButton.setImageResource(android.R.drawable.ic_media_pause);
mediaPlayer.seekTo(songPosition);
appMsg.setText(songList.get(0));
}
@覆盖
公共无效ONSTART(意向意图,诠释startid){
myMediaPlayer.start();
}
@覆盖
公共无效的onDestroy(){
myMediaPlayer.stop();
}
}
在您启动该服务时,启动按钮为$使用梅索德p $ pssed startService
和使用梅索德停止 stopService
在你的Activity类
I am trying to develop a simple media player to play mp3's of the sdcard/music directory for Android 2.3.3. The problem is when I hit the power button or when the device goes to sleep, the music stops. From googling, and searching stackoverflow, I found that I need to use the wake lock options, but no matter what I do, the music stops when the device goes to sleep (Pressing F7 on the emulator stops the music as well). Since I've been fighting this for way too long, I thought I'd ask for help. I would sincerely appreciate any input. Thanks. Here's my code:
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));
I think you should run the media in background using services So you create a service and put your media code in it and attach it to start and stop buttons maybe somthing like this :
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();
}
}
After that you start that service when a start button is pressed using methodestartService
and stop it using methode stopService
in your Activity class
这篇关于在安卓2.3.3睡眠播放音乐/待机模式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!