Loading api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -14965,6 +14965,7 @@ package android.media { method public int getPlaybackHeadPosition(); method public int getPlaybackRate(); method public int getPositionNotificationPeriod(); method public android.media.AudioDeviceInfo getPreferredOutputDevice(); method public int getSampleRate(); method public int getState(); method public int getStreamType(); Loading @@ -14981,6 +14982,7 @@ package android.media { method public void setPlaybackPositionUpdateListener(android.media.AudioTrack.OnPlaybackPositionUpdateListener, android.os.Handler); method public int setPlaybackRate(int); method public int setPositionNotificationPeriod(int); method public boolean setPreferredOutputDevice(android.media.AudioDeviceInfo); method protected deprecated void setState(int); method public deprecated int setStereoVolume(float, float); method public int setVolume(float); api/system-current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -16177,6 +16177,7 @@ package android.media { method public int getPlaybackHeadPosition(); method public int getPlaybackRate(); method public int getPositionNotificationPeriod(); method public android.media.AudioDeviceInfo getPreferredOutputDevice(); method public int getSampleRate(); method public int getState(); method public int getStreamType(); Loading @@ -16193,6 +16194,7 @@ package android.media { method public void setPlaybackPositionUpdateListener(android.media.AudioTrack.OnPlaybackPositionUpdateListener, android.os.Handler); method public int setPlaybackRate(int); method public int setPositionNotificationPeriod(int); method public boolean setPreferredOutputDevice(android.media.AudioDeviceInfo); method protected deprecated void setState(int); method public deprecated int setStereoVolume(float, float); method public int setVolume(float); core/jni/android_media_AudioTrack.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -957,6 +957,13 @@ static jint android_media_AudioTrack_attachAuxEffect(JNIEnv *env, jobject thiz, return nativeToJavaStatus( lpTrack->attachAuxEffect(effectId) ); } static jboolean android_media_AudioTrack_setOutputDevice( JNIEnv *env, jobject thiz, jint device_id) { sp<AudioTrack> lpTrack = getAudioTrack(env, thiz); return lpTrack->setOutputDevice(device_id) == NO_ERROR; } // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- static JNINativeMethod gMethods[] = { Loading Loading @@ -1002,6 +1009,8 @@ static JNINativeMethod gMethods[] = { "(F)I", (void *)android_media_AudioTrack_setAuxEffectSendLevel}, {"native_attachAuxEffect", "(I)I", (void *)android_media_AudioTrack_attachAuxEffect}, {"native_setOutputDevice", "(I)Z", (void *)android_media_AudioTrack_setOutputDevice}, }; Loading media/java/android/media/AudioTrack.java +35 −0 Original line number Diff line number Diff line Loading @@ -1851,6 +1851,39 @@ public class AudioTrack return err == 0 ? SUCCESS : ERROR; } //-------------------------------------------------------------------------- // Explicit Routing //-------------------- private AudioDeviceInfo mPreferredDevice = null; /** * Specifies an audio device (via and {@link AudioDeviceInfo} object) to route * the output from this AudioTrack. * @param deviceSpec The {@link AudioDeviceInfo} specifying the physical audio device. * If deviceSpec is null, default routing is restored. * @return true if succesful, false if the specified {@link AudioDeviceInfo} is non-null and * does not correspond to a valid audio output device. */ public boolean setPreferredOutputDevice(AudioDeviceInfo deviceSpec) { // Do some validation.... if (deviceSpec != null && !deviceSpec.isSink()) { return false; } mPreferredDevice = deviceSpec; int routingDeviceId = mPreferredDevice != null ? deviceSpec.getId() : 0; return native_setOutputDevice(routingDeviceId); } /** * Returns the selected output specified by {@link #setPreferredOutputDevice}. Note that this * is not guarenteed to correspond to the actual device being used for playback. */ public AudioDeviceInfo getPreferredOutputDevice() { return mPreferredDevice; } //--------------------------------------------------------- // Interface definitions //-------------------- Loading Loading @@ -2027,6 +2060,8 @@ public class AudioTrack private native final int native_attachAuxEffect(int effectId); private native final int native_setAuxEffectSendLevel(float level); private native final boolean native_setOutputDevice(int deviceId); //--------------------------------------------------------- // Utility methods //------------------ Loading Loading
api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -14965,6 +14965,7 @@ package android.media { method public int getPlaybackHeadPosition(); method public int getPlaybackRate(); method public int getPositionNotificationPeriod(); method public android.media.AudioDeviceInfo getPreferredOutputDevice(); method public int getSampleRate(); method public int getState(); method public int getStreamType(); Loading @@ -14981,6 +14982,7 @@ package android.media { method public void setPlaybackPositionUpdateListener(android.media.AudioTrack.OnPlaybackPositionUpdateListener, android.os.Handler); method public int setPlaybackRate(int); method public int setPositionNotificationPeriod(int); method public boolean setPreferredOutputDevice(android.media.AudioDeviceInfo); method protected deprecated void setState(int); method public deprecated int setStereoVolume(float, float); method public int setVolume(float);
api/system-current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -16177,6 +16177,7 @@ package android.media { method public int getPlaybackHeadPosition(); method public int getPlaybackRate(); method public int getPositionNotificationPeriod(); method public android.media.AudioDeviceInfo getPreferredOutputDevice(); method public int getSampleRate(); method public int getState(); method public int getStreamType(); Loading @@ -16193,6 +16194,7 @@ package android.media { method public void setPlaybackPositionUpdateListener(android.media.AudioTrack.OnPlaybackPositionUpdateListener, android.os.Handler); method public int setPlaybackRate(int); method public int setPositionNotificationPeriod(int); method public boolean setPreferredOutputDevice(android.media.AudioDeviceInfo); method protected deprecated void setState(int); method public deprecated int setStereoVolume(float, float); method public int setVolume(float);
core/jni/android_media_AudioTrack.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -957,6 +957,13 @@ static jint android_media_AudioTrack_attachAuxEffect(JNIEnv *env, jobject thiz, return nativeToJavaStatus( lpTrack->attachAuxEffect(effectId) ); } static jboolean android_media_AudioTrack_setOutputDevice( JNIEnv *env, jobject thiz, jint device_id) { sp<AudioTrack> lpTrack = getAudioTrack(env, thiz); return lpTrack->setOutputDevice(device_id) == NO_ERROR; } // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- static JNINativeMethod gMethods[] = { Loading Loading @@ -1002,6 +1009,8 @@ static JNINativeMethod gMethods[] = { "(F)I", (void *)android_media_AudioTrack_setAuxEffectSendLevel}, {"native_attachAuxEffect", "(I)I", (void *)android_media_AudioTrack_attachAuxEffect}, {"native_setOutputDevice", "(I)Z", (void *)android_media_AudioTrack_setOutputDevice}, }; Loading
media/java/android/media/AudioTrack.java +35 −0 Original line number Diff line number Diff line Loading @@ -1851,6 +1851,39 @@ public class AudioTrack return err == 0 ? SUCCESS : ERROR; } //-------------------------------------------------------------------------- // Explicit Routing //-------------------- private AudioDeviceInfo mPreferredDevice = null; /** * Specifies an audio device (via and {@link AudioDeviceInfo} object) to route * the output from this AudioTrack. * @param deviceSpec The {@link AudioDeviceInfo} specifying the physical audio device. * If deviceSpec is null, default routing is restored. * @return true if succesful, false if the specified {@link AudioDeviceInfo} is non-null and * does not correspond to a valid audio output device. */ public boolean setPreferredOutputDevice(AudioDeviceInfo deviceSpec) { // Do some validation.... if (deviceSpec != null && !deviceSpec.isSink()) { return false; } mPreferredDevice = deviceSpec; int routingDeviceId = mPreferredDevice != null ? deviceSpec.getId() : 0; return native_setOutputDevice(routingDeviceId); } /** * Returns the selected output specified by {@link #setPreferredOutputDevice}. Note that this * is not guarenteed to correspond to the actual device being used for playback. */ public AudioDeviceInfo getPreferredOutputDevice() { return mPreferredDevice; } //--------------------------------------------------------- // Interface definitions //-------------------- Loading Loading @@ -2027,6 +2060,8 @@ public class AudioTrack private native final int native_attachAuxEffect(int effectId); private native final int native_setAuxEffectSendLevel(float level); private native final boolean native_setOutputDevice(int deviceId); //--------------------------------------------------------- // Utility methods //------------------ Loading