【发布时间】:2013-07-10 15:11:14
【问题描述】:
我确实尝试了所有方法,但我的 SubRip 字幕无法在 Vitamio 中工作。是否可能是因为流式传输视频时不支持字幕?我想知道。英语 Vitamio 支持很烂。
这是我想出的:
public class StreamVideoActivity extends FragmentActivity implements OnSubtitleUpdateListener {
//Variables
VideoView streamingVideo;
TextView subtitleText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_stream_video);
subtitleText = (TextView) findViewById(R.id.subText);
streamingVideo = (VideoView) findViewById(R.id.videoView);
//BLABLABLABLA
streamingVideo.setVideoPath(fileUrl);
streamingVideo.setVideoQuality(MediaPlayer.VIDEOQUALITY_HIGH);
streamingVideo.setMediaController(mediaController);
streamingVideo.setBufferSize(512);
streamingVideo.setOnPreparedListener(new OnPreparedListener(){
@Override
public void onPrepared(MediaPlayer arg0) {
streamingVideo.setSubPath(subtitleFile.getPath());
streamingVideo.setSubShown(true);
streamingVideo.setSubEncoding(null);
streamingVideo.setSubTrack(MediaPlayer.SUBTITLE_EXTERNAL);
streamingVideo.setOnSubtitleUpdateListener(this);
streamingVideo.start();
}
}
}
@Override
public void onSubtitleUpdate(final String arg0) {
if (arg0 != null) {
handler.post(new Runnable() {
@Override
public void run() {
subtitleText.setText(arg0);
}
});
}
}
@Override
public void onSubtitleUpdate(byte[] arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
}
}
【问题讨论】:
-
如果你真的尝试了一切,我看不出如何提供答案......
-
嗯,我确实尝试了我能想到的一切。
-
有什么症状?你在
onSubtitleUpdate得到什么吗?在另一个onSubtitleUpdate上?由于您没有指定编码,因此调用带有byte[]的方法而不是带有字符串的方法是有意义的。我会测试:A/ 在setSubEncoding中输入一个编码。 B/ 记录onSubtitleUpdate(byte[] ...中发生的事情 -
当 SubEncoding 设置为 null 时,它应该自动检测编码。在 LogCat 中,它识别 SubRip 格式。我会看看 OnSubtitleUpdate(byte[]...) 会发生什么。谢谢