Loading media/java/android/media/MediaPlayer.java +4 −8 Original line number Diff line number Diff line Loading @@ -708,12 +708,10 @@ public class MediaPlayer extends PlayerBase * It's easier to create it here than in C++. */ try (ScopedParcelState attributionSourceState = attributionSource.asScopedParcelState()) { native_setup(new WeakReference<MediaPlayer>(this), attributionSourceState.getParcel()); native_setup(new WeakReference<>(this), attributionSourceState.getParcel(), resolvePlaybackSessionId(context, sessionId)); } int effectiveSessionId = resolvePlaybackSessionId(context, sessionId); baseRegisterPlayer(effectiveSessionId); native_setAudioSessionId(effectiveSessionId); baseRegisterPlayer(getAudioSessionId()); } private Parcel createPlayerIIdParcel() { Loading Loading @@ -1022,8 +1020,6 @@ public class MediaPlayer extends PlayerBase final AudioAttributes aa = audioAttributes != null ? audioAttributes : new AudioAttributes.Builder().build(); mp.setAudioAttributes(aa); mp.native_setAudioSessionId(audioSessionId); mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength()); afd.close(); mp.prepare(); Loading Loading @@ -2521,7 +2517,7 @@ public class MediaPlayer extends PlayerBase private static native final void native_init(); private native void native_setup(Object mediaplayerThis, @NonNull Parcel attributionSource); @NonNull Parcel attributionSource, int audioSessionId); private native final void native_finalize(); /** Loading media/jni/android_media_MediaPlayer.cpp +7 −3 Original line number Diff line number Diff line Loading @@ -956,14 +956,16 @@ android_media_MediaPlayer_native_init(JNIEnv *env) static void android_media_MediaPlayer_native_setup(JNIEnv *env, jobject thiz, jobject weak_this, jobject jAttributionSource) jobject jAttributionSource, jint jAudioSessionId) { ALOGV("native_setup"); Parcel* parcel = parcelForJavaObject(env, jAttributionSource); android::content::AttributionSourceState attributionSource; attributionSource.readFromParcel(parcel); sp<MediaPlayer> mp = sp<MediaPlayer>::make(attributionSource); sp<MediaPlayer> mp = sp<MediaPlayer>::make( attributionSource, static_cast<audio_session_t>(jAudioSessionId)); if (mp == NULL) { jniThrowException(env, "java/lang/RuntimeException", "Out of memory"); return; Loading Loading @@ -1419,7 +1421,9 @@ static const JNINativeMethod gMethods[] = { {"native_setMetadataFilter", "(Landroid/os/Parcel;)I", (void *)android_media_MediaPlayer_setMetadataFilter}, {"native_getMetadata", "(ZZLandroid/os/Parcel;)Z", (void *)android_media_MediaPlayer_getMetadata}, {"native_init", "()V", (void *)android_media_MediaPlayer_native_init}, {"native_setup", "(Ljava/lang/Object;Landroid/os/Parcel;)V",(void *)android_media_MediaPlayer_native_setup}, {"native_setup", "(Ljava/lang/Object;Landroid/os/Parcel;I)V", (void *)android_media_MediaPlayer_native_setup}, {"native_finalize", "()V", (void *)android_media_MediaPlayer_native_finalize}, {"getAudioSessionId", "()I", (void *)android_media_MediaPlayer_get_audio_session_id}, {"native_setAudioSessionId", "(I)V", (void *)android_media_MediaPlayer_set_audio_session_id}, Loading media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/MediaPlayerUnitTest.java +2 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import static android.media.AudioManager.AUDIO_SESSION_ID_GENERATE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; Loading Loading @@ -56,6 +57,7 @@ public class MediaPlayerUnitTest { MediaPlayer mediaPlayer = new MediaPlayer(virtualDeviceContext); assertNotEquals(vdmPlaybackSessionId, mediaPlayer.getAudioSessionId()); assertTrue(mediaPlayer.getAudioSessionId() > 0); } @Test Loading Loading
media/java/android/media/MediaPlayer.java +4 −8 Original line number Diff line number Diff line Loading @@ -708,12 +708,10 @@ public class MediaPlayer extends PlayerBase * It's easier to create it here than in C++. */ try (ScopedParcelState attributionSourceState = attributionSource.asScopedParcelState()) { native_setup(new WeakReference<MediaPlayer>(this), attributionSourceState.getParcel()); native_setup(new WeakReference<>(this), attributionSourceState.getParcel(), resolvePlaybackSessionId(context, sessionId)); } int effectiveSessionId = resolvePlaybackSessionId(context, sessionId); baseRegisterPlayer(effectiveSessionId); native_setAudioSessionId(effectiveSessionId); baseRegisterPlayer(getAudioSessionId()); } private Parcel createPlayerIIdParcel() { Loading Loading @@ -1022,8 +1020,6 @@ public class MediaPlayer extends PlayerBase final AudioAttributes aa = audioAttributes != null ? audioAttributes : new AudioAttributes.Builder().build(); mp.setAudioAttributes(aa); mp.native_setAudioSessionId(audioSessionId); mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength()); afd.close(); mp.prepare(); Loading Loading @@ -2521,7 +2517,7 @@ public class MediaPlayer extends PlayerBase private static native final void native_init(); private native void native_setup(Object mediaplayerThis, @NonNull Parcel attributionSource); @NonNull Parcel attributionSource, int audioSessionId); private native final void native_finalize(); /** Loading
media/jni/android_media_MediaPlayer.cpp +7 −3 Original line number Diff line number Diff line Loading @@ -956,14 +956,16 @@ android_media_MediaPlayer_native_init(JNIEnv *env) static void android_media_MediaPlayer_native_setup(JNIEnv *env, jobject thiz, jobject weak_this, jobject jAttributionSource) jobject jAttributionSource, jint jAudioSessionId) { ALOGV("native_setup"); Parcel* parcel = parcelForJavaObject(env, jAttributionSource); android::content::AttributionSourceState attributionSource; attributionSource.readFromParcel(parcel); sp<MediaPlayer> mp = sp<MediaPlayer>::make(attributionSource); sp<MediaPlayer> mp = sp<MediaPlayer>::make( attributionSource, static_cast<audio_session_t>(jAudioSessionId)); if (mp == NULL) { jniThrowException(env, "java/lang/RuntimeException", "Out of memory"); return; Loading Loading @@ -1419,7 +1421,9 @@ static const JNINativeMethod gMethods[] = { {"native_setMetadataFilter", "(Landroid/os/Parcel;)I", (void *)android_media_MediaPlayer_setMetadataFilter}, {"native_getMetadata", "(ZZLandroid/os/Parcel;)Z", (void *)android_media_MediaPlayer_getMetadata}, {"native_init", "()V", (void *)android_media_MediaPlayer_native_init}, {"native_setup", "(Ljava/lang/Object;Landroid/os/Parcel;)V",(void *)android_media_MediaPlayer_native_setup}, {"native_setup", "(Ljava/lang/Object;Landroid/os/Parcel;I)V", (void *)android_media_MediaPlayer_native_setup}, {"native_finalize", "()V", (void *)android_media_MediaPlayer_native_finalize}, {"getAudioSessionId", "()I", (void *)android_media_MediaPlayer_get_audio_session_id}, {"native_setAudioSessionId", "(I)V", (void *)android_media_MediaPlayer_set_audio_session_id}, Loading
media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/MediaPlayerUnitTest.java +2 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import static android.media.AudioManager.AUDIO_SESSION_ID_GENERATE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; Loading Loading @@ -56,6 +57,7 @@ public class MediaPlayerUnitTest { MediaPlayer mediaPlayer = new MediaPlayer(virtualDeviceContext); assertNotEquals(vdmPlaybackSessionId, mediaPlayer.getAudioSessionId()); assertTrue(mediaPlayer.getAudioSessionId() > 0); } @Test Loading