LibVLC无法显示流式视频的字幕

时间:2015-09-03 05:58:44

标签: java android video libvlc

我试图在Android设备上创建一个视频播放器,它可以从本地服务器流式传输视频。我找到了一个this示例。我遵循指南,最后我能够在我的设备上播放本地视频。然后我开始修改这个项目。我将VideoActivity设置为启动器活动,并注释掉从先前活动收到的所有数据。我修改了

的媒体初始化
Media m = new Media(libvlc, media);
mMediaPlayer.setMedia(m);

Uri uri = Uri.parse("http://samples.mplayerhq.hu/MPEG-4/embedded_subs/1Video_2Audio_2SUBs_timed_text_streams_.mp4");
Media m = new Media(libvlc, uri);
mMediaPlayer.setMedia(m);

添加了2个新方法(如您所见,这些方法只是简单的方法来查看结果)

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;
        }
    }

但是当我尝试播放视频时,我得到12401-12591/? A/libc﹕ @@@ ABORTING: INVALID HEAP ADDRESS IN dlfree。在显示字幕后几秒钟我收到此错误(字幕也太小)。仅当我尝试显示字幕时才会显示此错误。没有字幕视频播放没有任何错误。

我尝试在VLC应用程序上播放此视频,并且能够显示字幕。我试图创建新项目 - 得到了同样的错误。我分析了VLC的android源代码,看起来他们使用几乎相同的逻辑加载字幕(只为视频和字幕设置不同的surfaceViews,但它给了我同样的错误)。那我错过了什么?是什么导致玩家制动以及如何解决?也许已经有用于显示字幕的代码示例。

0 个答案:

没有答案