Loading media/java/android/media/MediaPlayer2.java +17 −1 Original line number Diff line number Diff line Loading @@ -1763,10 +1763,13 @@ public class MediaPlayer2 implements AutoCloseable */ // This is an asynchronous call. public Object setAudioSessionId(int sessionId) { keepAudioSessionIdAlive(sessionId); final AudioTrack dummyAudioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 44100, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, 2, AudioTrack.MODE_STATIC, sessionId); return addTask(new Task(CALL_COMPLETED_SET_AUDIO_SESSION_ID, false) { @Override void process() { keepAudioSessionIdAlive(dummyAudioTrack); native_setAudioSessionId(sessionId); } }); Loading Loading @@ -4621,4 +4624,17 @@ public class MediaPlayer2 implements AutoCloseable AudioTrack.MODE_STATIC, sessionId); } } private void keepAudioSessionIdAlive(AudioTrack at) { synchronized (mSessionIdLock) { if (mDummyAudioTrack != null) { if (mDummyAudioTrack.getAudioSessionId() == at.getAudioSessionId()) { at.release(); return; } mDummyAudioTrack.release(); } mDummyAudioTrack = at; } } } Loading
media/java/android/media/MediaPlayer2.java +17 −1 Original line number Diff line number Diff line Loading @@ -1763,10 +1763,13 @@ public class MediaPlayer2 implements AutoCloseable */ // This is an asynchronous call. public Object setAudioSessionId(int sessionId) { keepAudioSessionIdAlive(sessionId); final AudioTrack dummyAudioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 44100, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, 2, AudioTrack.MODE_STATIC, sessionId); return addTask(new Task(CALL_COMPLETED_SET_AUDIO_SESSION_ID, false) { @Override void process() { keepAudioSessionIdAlive(dummyAudioTrack); native_setAudioSessionId(sessionId); } }); Loading Loading @@ -4621,4 +4624,17 @@ public class MediaPlayer2 implements AutoCloseable AudioTrack.MODE_STATIC, sessionId); } } private void keepAudioSessionIdAlive(AudioTrack at) { synchronized (mSessionIdLock) { if (mDummyAudioTrack != null) { if (mDummyAudioTrack.getAudioSessionId() == at.getAudioSessionId()) { at.release(); return; } mDummyAudioTrack.release(); } mDummyAudioTrack = at; } } }