Merge "MediaPlayer2: remove AudioManager private API usage"

This commit is contained in:
Dongwon Kang
2018-11-11 02:38:07 +00:00
committed by Android (Google) Code Review
2 changed files with 10 additions and 56 deletions

View File

@@ -798,11 +798,7 @@ public final class MediaPlayer2Impl extends MediaPlayer2 {
@Override
public boolean setPreferredDevice(AudioDeviceInfo deviceInfo) {
if (deviceInfo != null && !deviceInfo.isSink()) {
return false;
}
int preferredDeviceId = deviceInfo != null ? deviceInfo.getId() : 0;
boolean status = native_setOutputDevice(preferredDeviceId);
boolean status = native_setPreferredDevice(deviceInfo);
if (status == true) {
synchronized (this) {
mPreferredDevice = deviceInfo;
@@ -819,20 +815,7 @@ public final class MediaPlayer2Impl extends MediaPlayer2 {
}
@Override
public AudioDeviceInfo getRoutedDevice() {
int deviceId = native_getRoutedDeviceId();
if (deviceId == 0) {
return null;
}
AudioDeviceInfo[] devices =
AudioManager.getDevicesStatic(AudioManager.GET_DEVICES_OUTPUTS);
for (int i = 0; i < devices.length; i++) {
if (devices[i].getId() == deviceId) {
return devices[i];
}
}
return null;
}
public native AudioDeviceInfo getRoutedDevice();
@Override
public void addOnRoutingChangedListener(AudioRouting.OnRoutingChangedListener listener,
@@ -852,8 +835,7 @@ public final class MediaPlayer2Impl extends MediaPlayer2 {
native_removeDeviceCallback(listener);
}
private native final boolean native_setOutputDevice(int deviceId);
private native final int native_getRoutedDeviceId();
private native boolean native_setPreferredDevice(AudioDeviceInfo device);
private native void native_addDeviceCallback(RoutingDelegate rd);
private native void native_removeDeviceCallback(
AudioRouting.OnRoutingChangedListener listener);
@@ -2773,34 +2755,6 @@ public final class MediaPlayer2Impl extends MediaPlayer2 {
}
// Called from the native side
@SuppressWarnings("unused")
private static boolean setAudioOutputDeviceById(AudioTrack track, int deviceId) {
if (track == null) {
return false;
}
if (deviceId == 0) {
// Use default routing.
track.setPreferredDevice(null);
return true;
}
// TODO: Unhide AudioManager.getDevicesStatic.
AudioDeviceInfo[] outputDevices =
AudioManager.getDevicesStatic(AudioManager.GET_DEVICES_OUTPUTS);
boolean success = false;
for (AudioDeviceInfo device : outputDevices) {
if (device.getId() == deviceId) {
track.setPreferredDevice(device);
success = true;
break;
}
}
return success;
}
// Instantiated from the native side
@SuppressWarnings("unused")
private static class StreamEventCallback extends AudioTrack.StreamEventCallback {

View File

@@ -1306,22 +1306,22 @@ static void android_media_MediaPlayer2_releaseDrm(JNIEnv *env, jobject thiz)
/////////////////////////////////////////////////////////////////////////////////////
// AudioRouting begin
static jboolean android_media_MediaPlayer2_setOutputDevice(JNIEnv *env, jobject thiz, jint device_id)
static jboolean android_media_MediaPlayer2_setPreferredDevice(JNIEnv *env, jobject thiz, jobject device)
{
sp<MediaPlayer2> mp = getMediaPlayer(env, thiz);
if (mp == NULL) {
return false;
}
return mp->setOutputDevice(device_id) == NO_ERROR;
return mp->setPreferredDevice(device) == NO_ERROR;
}
static jint android_media_MediaPlayer2_getRoutedDeviceId(JNIEnv *env, jobject thiz)
static jobject android_media_MediaPlayer2_getRoutedDevice(JNIEnv *env, jobject thiz)
{
sp<MediaPlayer2> mp = getMediaPlayer(env, thiz);
if (mp == NULL) {
return AUDIO_PORT_HANDLE_NONE;
return nullptr;
}
return mp->getRoutedDeviceId();
return mp->getRoutedDevice();
}
static void android_media_MediaPlayer2_addDeviceCallback(
@@ -1470,8 +1470,8 @@ static const JNINativeMethod gMethods[] = {
{ "_releaseDrm", "()V", (void *)android_media_MediaPlayer2_releaseDrm },
// AudioRouting
{"native_setOutputDevice", "(I)Z", (void *)android_media_MediaPlayer2_setOutputDevice},
{"native_getRoutedDeviceId", "()I", (void *)android_media_MediaPlayer2_getRoutedDeviceId},
{"native_setPreferredDevice", "(Landroid/media/AudioDeviceInfo;)Z", (void *)android_media_MediaPlayer2_setPreferredDevice},
{"getRoutedDevice", "()Landroid/media/AudioDeviceInfo;", (void *)android_media_MediaPlayer2_getRoutedDevice},
{"native_addDeviceCallback", "(Landroid/media/RoutingDelegate;)V", (void *)android_media_MediaPlayer2_addDeviceCallback},
{"native_removeDeviceCallback", "(Landroid/media/AudioRouting$OnRoutingChangedListener;)V",
(void *)android_media_MediaPlayer2_removeDeviceCallback},