mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
Cleanup TextTrackRenderer.
This commit is contained in:
parent
5f6b197355
commit
067422a491
1 changed files with 7 additions and 20 deletions
|
|
@ -21,7 +21,6 @@ import com.google.android.exoplayer.SampleHolder;
|
||||||
import com.google.android.exoplayer.SampleSource;
|
import com.google.android.exoplayer.SampleSource;
|
||||||
import com.google.android.exoplayer.TrackRenderer;
|
import com.google.android.exoplayer.TrackRenderer;
|
||||||
import com.google.android.exoplayer.util.Assertions;
|
import com.google.android.exoplayer.util.Assertions;
|
||||||
import com.google.android.exoplayer.util.VerboseLogUtil;
|
|
||||||
|
|
||||||
import android.annotation.TargetApi;
|
import android.annotation.TargetApi;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
|
@ -29,7 +28,6 @@ import android.os.Handler.Callback;
|
||||||
import android.os.HandlerThread;
|
import android.os.HandlerThread;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
|
|
@ -54,8 +52,6 @@ public class TextTrackRenderer extends TrackRenderer implements Callback {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final String TAG = "TextTrackRenderer";
|
|
||||||
|
|
||||||
private static final int MSG_UPDATE_OVERLAY = 0;
|
private static final int MSG_UPDATE_OVERLAY = 0;
|
||||||
|
|
||||||
private final Handler textRendererHandler;
|
private final Handler textRendererHandler;
|
||||||
|
|
@ -145,14 +141,13 @@ public class TextTrackRenderer extends TrackRenderer implements Callback {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void doSomeWork(long positionUs, long elapsedRealtimeUs) throws ExoPlaybackException {
|
protected void doSomeWork(long positionUs, long elapsedRealtimeUs) throws ExoPlaybackException {
|
||||||
|
currentPositionUs = positionUs;
|
||||||
try {
|
try {
|
||||||
source.continueBuffering(positionUs);
|
source.continueBuffering(positionUs);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new ExoPlaybackException(e);
|
throw new ExoPlaybackException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
currentPositionUs = positionUs;
|
|
||||||
|
|
||||||
if (parserHelper.isParsing()) {
|
if (parserHelper.isParsing()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -188,7 +183,7 @@ public class TextTrackRenderer extends TrackRenderer implements Callback {
|
||||||
|
|
||||||
// We don't have a subtitle. Try and read the next one from the source, and if we succeed then
|
// We don't have a subtitle. Try and read the next one from the source, and if we succeed then
|
||||||
// sync and set textRendererNeedsUpdate.
|
// sync and set textRendererNeedsUpdate.
|
||||||
if (subtitle == null) {
|
if (!inputStreamEnded && subtitle == null) {
|
||||||
try {
|
try {
|
||||||
SampleHolder sampleHolder = parserHelper.getSampleHolder();
|
SampleHolder sampleHolder = parserHelper.getSampleHolder();
|
||||||
int result = source.readData(trackIndex, positionUs, formatHolder, sampleHolder, false);
|
int result = source.readData(trackIndex, positionUs, formatHolder, sampleHolder, false);
|
||||||
|
|
@ -215,12 +210,12 @@ public class TextTrackRenderer extends TrackRenderer implements Callback {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onDisabled() {
|
protected void onDisabled() {
|
||||||
source.disable(trackIndex);
|
|
||||||
subtitle = null;
|
subtitle = null;
|
||||||
parserThread.quit();
|
parserThread.quit();
|
||||||
parserThread = null;
|
parserThread = null;
|
||||||
parserHelper = null;
|
parserHelper = null;
|
||||||
clearTextRenderer();
|
clearTextRenderer();
|
||||||
|
source.disable(trackIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -268,20 +263,18 @@ public class TextTrackRenderer extends TrackRenderer implements Callback {
|
||||||
|
|
||||||
private void updateTextRenderer(long positionUs) {
|
private void updateTextRenderer(long positionUs) {
|
||||||
String text = subtitle.getText(positionUs);
|
String text = subtitle.getText(positionUs);
|
||||||
log("updateTextRenderer; text=: " + text);
|
|
||||||
if (textRendererHandler != null) {
|
if (textRendererHandler != null) {
|
||||||
textRendererHandler.obtainMessage(MSG_UPDATE_OVERLAY, text).sendToTarget();
|
textRendererHandler.obtainMessage(MSG_UPDATE_OVERLAY, text).sendToTarget();
|
||||||
} else {
|
} else {
|
||||||
invokeTextRenderer(text);
|
invokeRendererInternal(text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void clearTextRenderer() {
|
private void clearTextRenderer() {
|
||||||
log("clearTextRenderer");
|
|
||||||
if (textRendererHandler != null) {
|
if (textRendererHandler != null) {
|
||||||
textRendererHandler.obtainMessage(MSG_UPDATE_OVERLAY, null).sendToTarget();
|
textRendererHandler.obtainMessage(MSG_UPDATE_OVERLAY, null).sendToTarget();
|
||||||
} else {
|
} else {
|
||||||
invokeTextRenderer(null);
|
invokeRendererInternal(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -289,20 +282,14 @@ public class TextTrackRenderer extends TrackRenderer implements Callback {
|
||||||
public boolean handleMessage(Message msg) {
|
public boolean handleMessage(Message msg) {
|
||||||
switch (msg.what) {
|
switch (msg.what) {
|
||||||
case MSG_UPDATE_OVERLAY:
|
case MSG_UPDATE_OVERLAY:
|
||||||
invokeTextRenderer((String) msg.obj);
|
invokeRendererInternal((String) msg.obj);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void invokeTextRenderer(String text) {
|
private void invokeRendererInternal(String text) {
|
||||||
textRenderer.onText(text);
|
textRenderer.onText(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void log(String logMessage) {
|
|
||||||
if (VerboseLogUtil.isTagEnabled(TAG)) {
|
|
||||||
Log.v(TAG, logMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue