2014-11-24 41 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(); 
相关问题