我是韩国的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();
}