活动从锁定屏幕开始时没有声音
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了活动从锁定屏幕开始时没有声音相关的知识,希望对你有一定的参考价值。
这似乎是一个奇怪的问题。我正在使用AlarmManager设置自定义音轨的闹钟。活动开始并正常播放音乐,但是当我锁定电话时,活动开始但音频没有播放。
这是我正在使用它的代码。
onCreate方法
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
mWakelock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP,"My Wake Log");
mWakelock.acquire();
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON,
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
setContentView(R.layout.sampleAlarm);
mediplayer.setAudiostreamType(AudioManager.STREAM_MUSIC);
mediplayer.setDataSource(Environment.getExternalStorageDirectory()+"track1/1.mp3");
mediplayer.setVolume(100,100);
mediplayer.prepare();
mediplayer.setLooping(true);
mediplayer.start();
知道我做错了什么。
答案
我弄清楚了。并解决了这个问题。我在onStop和onPause方法中添加了一个mediaplayer版本,当手机从锁定模式唤醒时,由于某种原因,它会重复触发onStop和onPause。所以我在onStop和onPause中添加了一个isFinishing,以确保活动实际上已停止。
if(this.isFinishing(){
mediplayer.stop();
mediplayer.release();
}
另一答案
只需添加@RagZ anwer
如果您正在使用Fragments,那么只需用isRemoving()替换isFinishing()。
if(this.isRemoving(){
mediplayer.stop();
mediplayer.release();
}
以上是关于活动从锁定屏幕开始时没有声音的主要内容,如果未能解决你的问题,请参考以下文章
Callkit 和 Webrtc 从锁定屏幕接听电话时没有音频
继续使用 MPMoviePlayerController 播放声音并锁定屏幕?
从锁定屏幕启动时,Android Activity 会打开两次