OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.media; | 5 package org.chromium.media; |
6 | 6 |
7 import android.content.Context; | |
8 import android.media.MediaPlayer; | 7 import android.media.MediaPlayer; |
9 | 8 |
10 import org.chromium.base.annotations.CalledByNative; | 9 import org.chromium.base.annotations.CalledByNative; |
11 import org.chromium.base.annotations.JNINamespace; | 10 import org.chromium.base.annotations.JNINamespace; |
12 | 11 |
13 // This class implements all the listener interface for android mediaplayer. | 12 // This class implements all the listener interface for android mediaplayer. |
14 // Callbacks will be sent to the native class for processing. | 13 // Callbacks will be sent to the native class for processing. |
15 @JNINamespace("media") | 14 @JNINamespace("media") |
16 class MediaPlayerListener implements MediaPlayer.OnPreparedListener, | 15 class MediaPlayerListener implements MediaPlayer.OnPreparedListener, |
17 MediaPlayer.OnCompletionListener, | 16 MediaPlayer.OnCompletionListener, |
18 MediaPlayer.OnBufferingUpdateListener, | 17 MediaPlayer.OnBufferingUpdateListener, |
19 MediaPlayer.OnSeekCompleteListener, | 18 MediaPlayer.OnSeekCompleteListener, |
20 MediaPlayer.OnVideoSizeChangedListener, | 19 MediaPlayer.OnVideoSizeChangedListener, |
21 MediaPlayer.OnErrorListener { | 20 MediaPlayer.OnErrorListener { |
22 // These values are mirrored as enums in media/base/android/media_player_and
roid.h. | 21 // These values are mirrored as enums in media/base/android/media_player_and
roid.h. |
23 // Please ensure they stay in sync. | 22 // Please ensure they stay in sync. |
24 private static final int MEDIA_ERROR_FORMAT = 0; | 23 private static final int MEDIA_ERROR_FORMAT = 0; |
25 private static final int MEDIA_ERROR_DECODE = 1; | 24 private static final int MEDIA_ERROR_DECODE = 1; |
26 private static final int MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK = 2; | 25 private static final int MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK = 2; |
27 private static final int MEDIA_ERROR_INVALID_CODE = 3; | 26 private static final int MEDIA_ERROR_INVALID_CODE = 3; |
28 private static final int MEDIA_ERROR_SERVER_DIED = 4; | 27 private static final int MEDIA_ERROR_SERVER_DIED = 4; |
29 | 28 |
30 // These values are copied from android media player. | 29 // These values are copied from android media player. |
31 public static final int MEDIA_ERROR_MALFORMED = -1007; | 30 public static final int MEDIA_ERROR_MALFORMED = -1007; |
32 public static final int MEDIA_ERROR_TIMED_OUT = -110; | 31 public static final int MEDIA_ERROR_TIMED_OUT = -110; |
33 | 32 |
34 // Used to determine the class instance to dispatch the native call to. | 33 // Used to determine the class instance to dispatch the native call to. |
35 private long mNativeMediaPlayerListener; | 34 private long mNativeMediaPlayerListener; |
36 private final Context mContext; | |
37 | 35 |
38 private MediaPlayerListener(long nativeMediaPlayerListener, Context context)
{ | 36 private MediaPlayerListener(long nativeMediaPlayerListener) { |
39 mNativeMediaPlayerListener = nativeMediaPlayerListener; | 37 mNativeMediaPlayerListener = nativeMediaPlayerListener; |
40 mContext = context; | |
41 } | 38 } |
42 | 39 |
43 @Override | 40 @Override |
44 public boolean onError(MediaPlayer mp, int what, int extra) { | 41 public boolean onError(MediaPlayer mp, int what, int extra) { |
45 int errorType; | 42 int errorType; |
46 switch (what) { | 43 switch (what) { |
47 case MediaPlayer.MEDIA_ERROR_UNKNOWN: | 44 case MediaPlayer.MEDIA_ERROR_UNKNOWN: |
48 switch (extra) { | 45 switch (extra) { |
49 case MEDIA_ERROR_MALFORMED: | 46 case MEDIA_ERROR_MALFORMED: |
50 errorType = MEDIA_ERROR_DECODE; | 47 errorType = MEDIA_ERROR_DECODE; |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 public void onCompletion(MediaPlayer mp) { | 91 public void onCompletion(MediaPlayer mp) { |
95 nativeOnPlaybackComplete(mNativeMediaPlayerListener); | 92 nativeOnPlaybackComplete(mNativeMediaPlayerListener); |
96 } | 93 } |
97 | 94 |
98 @Override | 95 @Override |
99 public void onPrepared(MediaPlayer mp) { | 96 public void onPrepared(MediaPlayer mp) { |
100 nativeOnMediaPrepared(mNativeMediaPlayerListener); | 97 nativeOnMediaPrepared(mNativeMediaPlayerListener); |
101 } | 98 } |
102 | 99 |
103 @CalledByNative | 100 @CalledByNative |
104 private static MediaPlayerListener create(long nativeMediaPlayerListener, | 101 private static MediaPlayerListener create( |
105 Context context, MediaPlayerBridge mediaPlayerBridge) { | 102 long nativeMediaPlayerListener, MediaPlayerBridge mediaPlayerBridge)
{ |
106 final MediaPlayerListener listener = | 103 final MediaPlayerListener listener = new MediaPlayerListener(nativeMedia
PlayerListener); |
107 new MediaPlayerListener(nativeMediaPlayerListener, context); | |
108 if (mediaPlayerBridge != null) { | 104 if (mediaPlayerBridge != null) { |
109 mediaPlayerBridge.setOnBufferingUpdateListener(listener); | 105 mediaPlayerBridge.setOnBufferingUpdateListener(listener); |
110 mediaPlayerBridge.setOnCompletionListener(listener); | 106 mediaPlayerBridge.setOnCompletionListener(listener); |
111 mediaPlayerBridge.setOnErrorListener(listener); | 107 mediaPlayerBridge.setOnErrorListener(listener); |
112 mediaPlayerBridge.setOnPreparedListener(listener); | 108 mediaPlayerBridge.setOnPreparedListener(listener); |
113 mediaPlayerBridge.setOnSeekCompleteListener(listener); | 109 mediaPlayerBridge.setOnSeekCompleteListener(listener); |
114 mediaPlayerBridge.setOnVideoSizeChangedListener(listener); | 110 mediaPlayerBridge.setOnVideoSizeChangedListener(listener); |
115 } | 111 } |
116 return listener; | 112 return listener; |
117 } | 113 } |
(...skipping 14 matching lines...) Expand all Loading... |
132 int percent); | 128 int percent); |
133 | 129 |
134 private native void nativeOnMediaPrepared(long nativeMediaPlayerListener); | 130 private native void nativeOnMediaPrepared(long nativeMediaPlayerListener); |
135 | 131 |
136 private native void nativeOnPlaybackComplete(long nativeMediaPlayerListener)
; | 132 private native void nativeOnPlaybackComplete(long nativeMediaPlayerListener)
; |
137 | 133 |
138 private native void nativeOnSeekComplete(long nativeMediaPlayerListener); | 134 private native void nativeOnSeekComplete(long nativeMediaPlayerListener); |
139 | 135 |
140 private native void nativeOnMediaInterrupted(long nativeMediaPlayerListener)
; | 136 private native void nativeOnMediaInterrupted(long nativeMediaPlayerListener)
; |
141 } | 137 } |
OLD | NEW |