在安卓2.3.3睡眠播放音乐/待机模式 [英] Playing music in sleep/standby mode in Android 2.3.3

查看:149
本文介绍了在安卓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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆