我对libvlc-android集成字幕有疑问

时间:2020-10-22 03:46:43

标签: vlc libvlc

enter image description here

我是韩国的Android开发人员。 与上面的示例一样,一个smi文件中包含两个原始字幕。如何分别从libvlc-android读取字幕? 阅读字幕文件时,仅在顶部显示英文字幕。
文件 我正在使用两种语言的smi文件。我希望不仅smi而且srt文件都可以正常运行。

Log.d(TAG,“ createPlayer”);` 尝试{ //미디어경로메시지풍선으로화면에

        //libvlc 생성
        // 옵션 추가 하기
        // 다른 옵션 추가시 여기에 add로 추가해주면 됨.
        //플레이어에 적용시킬옵션은 앞에 --를 붙이고 미디어에 적용시킬옵션은 앞에 :를붙여 적용시킴
        ArrayList<String> options = new ArrayList<String>();
        options.add("--aout=opensles");
        options.add("--audio-time-stretch");// time stretching
        options.add("-vvv");
        options.add("--avcodec-codec=h264");
        //options.add("--sub-autodetect-fuzzy=3");

        options.add("--network-caching=0");
        options.add("--freetype-rel-fontsize="+fsize[fsizecount]);
        options.add("--subsdec-encoding=euc-kr");
        options.add("--sub-delay="+delay);
        options.add("--mjpeg-fps=16");
        options.add("--sub-track=0--no-sout-all");

        libvlc = new LibVLC(act, options);


        mMediaPlayer = new MediaPlayer(libvlc);
        mMediaPlayer.setEventListener(eventListener);
        mMediaPlayer.setAspectRatio(size);

        vout = mMediaPlayer.getVLCVout();


        vout.setVideoView(mSurface);
        vout.addCallback(callback);

        //서페이스 홀더와 연결
        vout.attachViews();

        //동영상 파일 로딩
        vm=null;
        File f=new File(mediaPath);
        if(isURL) {
            vm = new Media(libvlc, Uri.parse(mediaPath));
        }
        else {
            vm = new Media(libvlc, mediaPath);
        }

        String format="ts";
        vm.addOption(":sout=#duplicate{dst=display,dst=std{access=file,mux="+format+",dst="+mediaPath+"}}");
        vm.addOption(":file-caching=0");
        vm.addOption(":no-sout-all:sub-track=1");

        mMediaPlayer.setMedia(vm);

        //addTimedTextSource(mediaPath.replace(".mp4",".smi"));
        // 재생 시작
        mMediaPlayer.play();

    } catch (Exception e) {
        //Log.e("error",e.getMessage());
        Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
    }

0 个答案:

没有答案