2014-11-24 45 views
0

按下電源按鈕後,音軌停止播放。 如何在按下電源按鈕時阻止音軌停止。 我嘗試使用keyguard管理器來防止在音軌正在播放時鎖定屏幕未鎖定,但音頻軌道仍然停止。 這隻適用於某些音樂文件(.wav格式)。如何防止在android中按下電源按鈕時音頻軌道播放中斷?

//在下面的代碼中,音頻軌道用緩衝區大小爲512KB的bytedata寫入。

public class M_Audio_Class implements Runnable { 

private byte[] mByteData = new byte[512]; 
AudioTrack mAudioTrack; 

@Override 
    public void run() { 
     // TODO Auto-generated method stub 
     mAudioTrack 
       .setPlaybackPositionUpdateListener(new AudioTrack.OnPlaybackPositionUpdateListener() { 

        @Override 
        public void onPeriodicNotification(AudioTrack track) { 
         mAudioTrack.write(mByteData, 0, mByteData.length); 
        } 

        @Override 
        public void onMarkerReached(AudioTrack track) { 
         // TODO Auto-generated method stub 

         mAudioTrack.stop(); 
        } 
       }); 

     //Here NOTIFY_PERIOD_SIZE is 128 samples 
     mAudioTrack.setPositionNotificationPeriod(NOTIFY_PERIOD_SIZE); 
     //Audio Track playing is intialized here 
     mAudioTrack.play(); 
    } 

回答

0

您需要keep CPU on by holding a wakelock。不要忘記在播放完成後再釋放鎖定。

PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); 
Wakelock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, 
     "MyWakelockTag"); 
wakeLock.acquire(); 
相關問題