2014-03-25 83 views
0

這似乎是一個奇怪的問題。我正在使用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(); 

任何想法,我做錯了。

回答

3

我能弄明白。並解決了這個問題。我已經在onStop和onPause方法中添加了mediaplayer發行版,並且當手機從鎖定模式喚醒時,由於某種原因,它會重複觸發onStop和onPause。所以我在onStop和onPause中添加了一個isFinishing,以確保活動實際停止。

if(this.isFinishing(){ 
    mediplayer.stop(); 
    mediplayer.release(); 
} 
0

只是增加@RagZ前面回答

如果您使用的片段,然後只需更換isFinishing()isRemoving()

if(this.isRemoving(){ 
    mediplayer.stop(); 
    mediplayer.release(); 
} 
相關問題