在睡眠模式下几分钟后,MediaPlayer停止从互联网播放音乐

时间:2019-04-15 10:32:59

标签: android android-mediaplayer sleep-mode

我有一个Android应用程序,可以从URL播放音乐,但是当我的电话进入睡眠模式时,它会播放5分钟,然后在我解锁设备后继续播放。

我已经尝试过此Playing music in sleep/standby mode in Android 2.3.3解决方案,但没有帮助。

此外,我尝试使用 startForegroundService(),但它只能在android 8和更高版本上使用。但是我的项目的最低版本是android 5。

MainActivity.java

public static Srting src = "http://clips.vorwaerts-gmbh.de/VfE_html5.mp4";
public void Play(View view){
        startService(new Intent(this, MyService.class));
        play.setEnabled(false);
    }

MyService.java

public class MyService extends Service {
    MediaPlayer ambientMediaPlayer;
    @Override
    public IBinder onBind(Intent intent) {

        throw new UnsupportedOperationException("Not yet implemented");
    }
    @Override
    public void onCreate(){
        ambientMediaPlayer = new MediaPlayer();
        ambientMediaPlayer.setLooping(true);
        ambientMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    }
    @Override
    public int onStartCommand(Intent intent, int flags, int startId){
        try {
            ambientMediaPlayer.setDataSource(MainActivity.src);
            ambientMediaPlayer.prepare();
            ambientMediaPlayer.start();
        }catch (IOException e){
            e.printStackTrace();
        }
        return START_STICKY;
    }
    @Override
    public void onDestroy() {
        ambientMediaPlayer.stop();
    }
}

2 个答案:

答案 0 :(得分:0)

如果您定位的是android oreo及更高版本,则不能使用startService。您必须使用startForegroundstartForegroundService。请参阅此帖子https://developer.android.com/distribute/best-practices/develop/target-sdk#prenougat。因此请尝试以下示例。

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
       startForegroundService(new Intent(this, MyService.class));
    } else {
        startService(new Intent(this, MyService.class));
    }

答案 1 :(得分:0)