From 553fef02cce5e579df6c7b9aea245e81e4eb46e4 Mon Sep 17 00:00:00 2001 From: Nick Fujita Date: Mon, 17 Aug 2020 16:28:36 +0900 Subject: [PATCH] Port over fix from 4.x branch --- .../exoplayer/VideoEventEmitter.java | 38 +++++++++++++------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/VideoEventEmitter.java b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/VideoEventEmitter.java index 7a60096a08..ea0cc5ac6d 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/VideoEventEmitter.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/VideoEventEmitter.java @@ -9,6 +9,7 @@ import com.facebook.react.bridge.WritableMap; import com.facebook.react.uimanager.events.RCTEventEmitter; import com.google.android.exoplayer2.metadata.Metadata; +import com.google.android.exoplayer2.metadata.emsg.EventMessage; import com.google.android.exoplayer2.metadata.id3.Id3Frame; import com.google.android.exoplayer2.metadata.id3.TextInformationFrame; @@ -248,25 +249,38 @@ void timedMetadata(Metadata metadata) { WritableArray metadataArray = Arguments.createArray(); for (int i = 0; i < metadata.length(); i++) { + + Metadata.Entry entry = metadata.get(i); + if (entry instanceof Id3Frame) { - Id3Frame frame = (Id3Frame) metadata.get(i); + Id3Frame frame = (Id3Frame) entry; - String value = ""; + String value = ""; - if (frame instanceof TextInformationFrame) { - TextInformationFrame txxxFrame = (TextInformationFrame) frame; - value = txxxFrame.value; - } - - String identifier = frame.id; + if (frame instanceof TextInformationFrame) { + TextInformationFrame txxxFrame = (TextInformationFrame) frame; + value = txxxFrame.value; + } - WritableMap map = Arguments.createMap(); - map.putString("identifier", identifier); - map.putString("value", value); + String identifier = frame.id; - metadataArray.pushMap(map); + WritableMap map = Arguments.createMap(); + map.putString("identifier", identifier); + map.putString("value", value); + metadataArray.pushMap(map); + + } else if (entry instanceof EventMessage) { + + EventMessage eventMessage = (EventMessage) entry; + + WritableMap map = Arguments.createMap(); + map.putString("identifier", eventMessage.schemeIdUri); + map.putString("value", eventMessage.value); + metadataArray.pushMap(map); + + } } WritableMap event = Arguments.createMap();