diff options
Diffstat (limited to 'media/java')
| -rw-r--r-- | media/java/android/media/MediaExtractor.java | 2 | ||||
| -rw-r--r-- | media/java/android/media/MediaPlayer.java | 3 | ||||
| -rw-r--r-- | media/java/android/media/MediaRouter.java | 26 |
3 files changed, 22 insertions, 9 deletions
diff --git a/media/java/android/media/MediaExtractor.java b/media/java/android/media/MediaExtractor.java index 9f10cb0..687d3a5 100644 --- a/media/java/android/media/MediaExtractor.java +++ b/media/java/android/media/MediaExtractor.java @@ -295,7 +295,7 @@ final public class MediaExtractor { * Returns true iff we are caching data and the cache has reached the * end of the data stream (for now, a future seek may of course restart * the fetching of data). - * This API only returns a meaningful result if {link #getCachedDuration} + * This API only returns a meaningful result if {@link #getCachedDuration} * indicates the presence of a cache, i.e. does NOT return -1. */ public native boolean hasCacheReachedEndOfStream(); diff --git a/media/java/android/media/MediaPlayer.java b/media/java/android/media/MediaPlayer.java index e76d25a..cd25865 100644 --- a/media/java/android/media/MediaPlayer.java +++ b/media/java/android/media/MediaPlayer.java @@ -706,7 +706,7 @@ public class MediaPlayer * surface rendering area. When the surface has the same aspect ratio * as the content, the aspect ratio of the content is maintained; * otherwise, the aspect ratio of the content is not maintained when video - * is being rendered. Unlike {@ #VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING}, + * is being rendered. Unlike {@link #VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING}, * there is no content cropping with this video scaling mode. */ public static final int VIDEO_SCALING_MODE_SCALE_TO_FIT = 1; @@ -2026,6 +2026,7 @@ public class MediaPlayer if (msg.obj instanceof Parcel) { Parcel parcel = (Parcel)msg.obj; TimedText text = new TimedText(parcel); + parcel.recycle(); mOnTimedTextListener.onTimedText(mMediaPlayer, text); } } diff --git a/media/java/android/media/MediaRouter.java b/media/java/android/media/MediaRouter.java index 357bf4e..a256079 100644 --- a/media/java/android/media/MediaRouter.java +++ b/media/java/android/media/MediaRouter.java @@ -126,6 +126,15 @@ public class MediaRouter { sStatic.mDefaultAudio.mNameResId = name; dispatchRouteChanged(sStatic.mDefaultAudio); } + + boolean a2dpEnabled; + try { + a2dpEnabled = mAudioService.isBluetoothA2dpOn(); + } catch (RemoteException e) { + Log.e(TAG, "Error querying Bluetooth A2DP state", e); + a2dpEnabled = false; + } + if (!TextUtils.equals(newRoutes.mBluetoothName, mCurRoutesInfo.mBluetoothName)) { mCurRoutesInfo.mBluetoothName = newRoutes.mBluetoothName; if (mCurRoutesInfo.mBluetoothName != null) { @@ -135,13 +144,6 @@ public class MediaRouter { info.mSupportedTypes = ROUTE_TYPE_LIVE_AUDIO; sStatic.mBluetoothA2dpRoute = info; addRoute(sStatic.mBluetoothA2dpRoute); - try { - if (mAudioService.isBluetoothA2dpOn()) { - selectRouteStatic(ROUTE_TYPE_LIVE_AUDIO, mBluetoothA2dpRoute); - } - } catch (RemoteException e) { - Log.e(TAG, "Error selecting Bluetooth A2DP route", e); - } } else { sStatic.mBluetoothA2dpRoute.mName = mCurRoutesInfo.mBluetoothName; dispatchRouteChanged(sStatic.mBluetoothA2dpRoute); @@ -151,6 +153,16 @@ public class MediaRouter { sStatic.mBluetoothA2dpRoute = null; } } + + if (mBluetoothA2dpRoute != null) { + if (mCurRoutesInfo.mMainType != AudioRoutesInfo.MAIN_SPEAKER && + mSelectedRoute == mBluetoothA2dpRoute) { + selectRouteStatic(ROUTE_TYPE_LIVE_AUDIO, mDefaultAudio); + } else if (mCurRoutesInfo.mMainType == AudioRoutesInfo.MAIN_SPEAKER && + mSelectedRoute == mDefaultAudio && a2dpEnabled) { + selectRouteStatic(ROUTE_TYPE_LIVE_AUDIO, mBluetoothA2dpRoute); + } + } } } |
