Java LibVLC无法显示流式视频的字幕
我尝试在android设备上创建一个视频播放器,可以从本地服务器上播放视频。我找到了一个例子。我遵循了指南,最终我能够在我的设备上播放本地视频。然后我开始修改这个项目。我将VideoActivity设置为launcher活动,并注释掉以前活动中收到的所有数据。我从中修改了媒体的初始化Java LibVLC无法显示流式视频的字幕,java,android,video,libvlc,Java,Android,Video,Libvlc,我尝试在android设备上创建一个视频播放器,可以从本地服务器上播放视频。我找到了一个例子。我遵循了指南,最终我能够在我的设备上播放本地视频。然后我开始修改这个项目。我将VideoActivity设置为launcher活动,并注释掉以前活动中收到的所有数据。我从中修改了媒体的初始化 Media m = new Media(libvlc, media); mMediaPlayer.setMedia(m); 到 添加了2个新方法(如您所见,这些方法只是为了查看结果而使用的伪方法) 在比赛中给他们
Media m = new Media(libvlc, media);
mMediaPlayer.setMedia(m);
到
添加了2个新方法(如您所见,这些方法只是为了查看结果而使用的伪方法)
在比赛中给他们打电话
@Override
public void onEvent(MediaPlayer.Event event) {
VideoActivity player = mOwner.get();
switch(event.type) {
case MediaPlayer.Event.EndReached:
Log.d(TAG, "MediaPlayerEndReached");
player.releasePlayer();
break;
case MediaPlayer.Event.Playing:
---> player.seekTo(1000);
---> player.setSubtitles();
case MediaPlayer.Event.Paused:
case MediaPlayer.Event.Stopped:
default:
break;
}
}
但是当我试着播放视频时,我得到了12401-12591/?A/libc﹕ @@@ 中止:dlfree中的堆地址无效
。我在字幕ar显示几秒钟后出现这个错误(字幕太小)。仅当我尝试显示字幕时才会显示此错误。没有字幕的视频播放没有任何错误
我尝试在VLC应用程序上播放这个视频,它能够显示字幕。我试图创建一个新的项目-得到了同样的错误。我分析了VLC android源代码,看起来他们在加载字幕时使用了几乎相同的逻辑(只是为视频和字幕设置了不同的SurfaceView,但它给了我相同的错误)。那么我错过了什么?是什么导致玩家刹车?如何修复?也许已经有了显示字幕的代码示例。对此也感兴趣……不,我没有找到答案。由于a完成该任务的时间有限,我只需制作一个自定义字幕文件解析器,并在自定义修改的文本视图元素中显示解析后的数据。它工作得很好,也给了我调整字幕外观的额外可能性
private void setSubtitles(){
MediaPlayer.TrackDescription[] tds = mMediaPlayer.getSpuTracks();
mMediaPlayer.setSpuTrack(tds[tds.length - 1].id);
}
private void seekTo(long time) {
mMediaPlayer.setTime(time);
}
@Override
public void onEvent(MediaPlayer.Event event) {
VideoActivity player = mOwner.get();
switch(event.type) {
case MediaPlayer.Event.EndReached:
Log.d(TAG, "MediaPlayerEndReached");
player.releasePlayer();
break;
case MediaPlayer.Event.Playing:
---> player.seekTo(1000);
---> player.setSubtitles();
case MediaPlayer.Event.Paused:
case MediaPlayer.Event.Stopped:
default:
break;
}
}