Merge "MediaPlayer2: remove AudioManager private API usage"
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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},
|
||||
|
||||
Reference in New Issue
Block a user