Allow timed metadata to compile on older SDKs

This commit is contained in:
Hampton Maxwell 2018-06-25 14:25:12 -07:00 committed by GitHub
parent aa89683785
commit 70d863e3d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -37,7 +37,6 @@ public class ReactVideoView extends ScalableVideoView implements
MediaPlayer.OnPreparedListener, MediaPlayer.OnPreparedListener,
MediaPlayer.OnErrorListener, MediaPlayer.OnErrorListener,
MediaPlayer.OnBufferingUpdateListener, MediaPlayer.OnBufferingUpdateListener,
MediaPlayer.OnTimedMetaDataAvailableListener,
MediaPlayer.OnCompletionListener, MediaPlayer.OnCompletionListener,
MediaPlayer.OnInfoListener, MediaPlayer.OnInfoListener,
LifecycleEventListener, LifecycleEventListener,
@ -197,8 +196,10 @@ public class ReactVideoView extends ScalableVideoView implements
mMediaPlayer.setOnPreparedListener(this); mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnBufferingUpdateListener(this); mMediaPlayer.setOnBufferingUpdateListener(this);
mMediaPlayer.setOnCompletionListener(this); mMediaPlayer.setOnCompletionListener(this);
mMediaPlayer.setOnTimedMetaDataAvailableListener(this);
mMediaPlayer.setOnInfoListener(this); mMediaPlayer.setOnInfoListener(this);
if (Build.VERSION.SDK_INT >= 23) {
mMediaPlayer.setOnTimedMetaDataAvailableListener(new TimedMetaDataAvailableListener());
}
} }
} }
@ -552,7 +553,11 @@ public class ReactVideoView extends ScalableVideoView implements
mEventEmitter.receiveEvent(getId(), Events.EVENT_END.toString(), null); mEventEmitter.receiveEvent(getId(), Events.EVENT_END.toString(), null);
} }
@Override // This is not fully tested and does not work for all forms of timed metadata
@TargetApi(23) // 6.0
public class TimedMetaDataAvailableListener
implements MediaPlayer.OnTimedMetaDataAvailableListener
{
public void onTimedMetaDataAvailable(MediaPlayer mp, TimedMetaData data) { public void onTimedMetaDataAvailable(MediaPlayer mp, TimedMetaData data) {
WritableMap event = Arguments.createMap(); WritableMap event = Arguments.createMap();
@ -569,12 +574,13 @@ public class ReactVideoView extends ScalableVideoView implements
event.putArray(EVENT_PROP_METADATA, metadata); event.putArray(EVENT_PROP_METADATA, metadata);
event.putDouble(EVENT_PROP_TARGET, getId()); event.putDouble(EVENT_PROP_TARGET, getId());
} catch(UnsupportedEncodingException e) { } catch (UnsupportedEncodingException e) {
e.printStackTrace(); e.printStackTrace();
} }
mEventEmitter.receiveEvent(getId(), Events.EVENT_TIMED_METADATA.toString(), event); mEventEmitter.receiveEvent(getId(), Events.EVENT_TIMED_METADATA.toString(), event);
} }
}
@Override @Override
protected void onDetachedFromWindow() { protected void onDetachedFromWindow() {