LibVLC Android跳转和快进

4

我在自己的安卓应用中遇到了一个寻找问题。当我向前播放我的rtmp视频(MP4源)时,VLC会卡住,60-120秒后才能正常播放。

我的设备是armv7安卓电视机顶盒。

        // Create a new media player
        libvlc = LibVLC.getInstance();
        libvlc.setHardwareAcceleration(LibVLC.HW_ACCELERATION_FULL);
        //libvlc.setSubtitlesEncoding("");
        //libvlc.setAout(LibVLC.VOUT_ANDROID_SURFACE);
        //libvlc.setTimeStretching(false);
        //libvlc.setFrameSkip(true);

        libvlc.setSubtitlesEncoding("");
        libvlc.setTimeStretching(false);
        libvlc.setFrameSkip(true);
        libvlc.setChroma("RV32");
        libvlc.setVerboseMode(true);
        libvlc.setAout(-1);
        libvlc.setDeblocking(4);
        libvlc.setNetworkCaching(0);



        //libvlc.setChroma("RV32");
        //libvlc.setVerboseMode(false);
        //libvlc.setDeblocking(1);
        //libvlc.setNetworkCaching(2500);
        LibVLC.restart(this);
        EventHandler.getInstance().addHandler(mHandler);
        holder.setFormat(PixelFormat.RGBX_8888);
        holder.setKeepScreenOn(true);
        MediaList list = libvlc.getMediaList();
        list.clear();
        list.add(new Media(libvlc, LibVLC.PathToURI(media)), false);
        libvlc.playIndex(0);

在其他播放器如MXPlayer上没有这个问题。 Vitamio工作良好,但音频同步存在问题。 在VLC上不寻求视频可以正常工作,以下是我的快进和倒带操作:

switch (event.getKeyCode()) {

        // next
        case 87:

            s = false;

            if (length > 0L) {
                Long t = time+60000L;
                if (t < length) {
                    //libvlc.clearBuffer();
                    libvlc.setTime(time+60000L);
                    libvlc.play();
                }
            }

            break;
        // prev
        case 88:

            s = false;

            if (length > 0L) {
                Long t = time-60000L;
                if (t > 0) {
                    libvlc.setTime(time-60000L);
                    libvlc.play();
                }
            }

            break;
    }

我也遇到了同样的问题。已经有解决方案了吗? - Sunil Sunny
仍然没有解决方案,我正在使用编译的FFmpeg或Vitamio插件,但Vitamio无法正常工作。视频仍然出现卡顿问题。在VLC中寻找仍然无法正常工作。 - ppoeas
我在使用 VLC 播放 RTMP 流时也遇到了问题。请参考 vlc play rtmp stream and cannot support seek - Charein
1个回答

1
我不理解你的问题,但是如果无法在MediaPlayer未播放时设置查找器位置,则在播放时调用setPosition即可解决问题:
        if(!isPlaying){
            mp.play();//otherwise not seekable for some silly reason
            mp.setTime((long)pos);
            mp.pause();
        }else{
            mp.setTime((long)pos);
        }

mp是MediaPlayer,当然。 由于getLength()有相同的问题,这真的很烦人,需要好的文档和教程!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接