ijkplayer库有直接播放字幕的api吗,没有的话如何在Java层扩展
解决方案 »
- android程序检查更新,下载apk安装之后,提示替换,安装时程序关闭,但是打包安装程序也关闭了啊,什么情况
- qinuxman android读文件从字节码变成字符再把字符变回字节码写成文件这么写为什么不对
- 反编译系统APK 出一个空文件夹
- android应用模仿android桌面效果
- 一个TabHost能不能只有一个activity,还是分别每个tab都要有
- 如何实现类似UC浏览器的前进后退按钮的图片切换功能
- 请用过VideoView类的朋友帮助
- Android源代码编译问题(添加自己定义的Java类)
- 关于spinner赋值取值的问题
- android滑动开关怎么设置它的高度和宽度
- 小白求助,遇到android studio 显示这个问题应该怎么办
- android人脸识别如何识别人的年龄?大牛们能否给点思路啊????
1. 中英混合字幕只显示中文。
2. 切换字幕时还会出现崩溃。
3. 切换字幕时并不是马上同步字幕,而是播放几分钟才能同步字幕。
个人建议如果你不会修改ijkplayer.so库的代码,最好不用用。ijkplayer库有直接播放字幕的api: ijkMediaPlayer.selectTrack(int track); 不过要加上这个设置项,字幕才有效。
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "subtitle", 1); 最后解决我所说的ijkplayer本身存在的bug,楼主自行解决。因为这些问题并不是三言两语能说的清楚。
感谢回复,看你给出的api调用应该是播放视频自带的内挂字幕,ijkMediaPlayer.selectTrack(int track)我在网上看确实存在一些bug(包括音轨切换),目前我是参考网上一些demo和字幕文件的特点,在Java层对外挂字幕文件做了一些简单的解析。
主流的字幕格式例如srt都是有一定的格式的(包含每行字幕的进场和出场时刻),可以根据规律进行读取和解析,并在对应的时间段展示对应的那一行字幕,在视频播放的过程中,你自然可以读取到此时的时间点(例如播到1分20秒),利用这个时间来跟字幕文件里的时间进行比较,就可以准确地展示外置字幕。(解析细节可以网上搜索,挺多的也很容易理解)
然后TextView的位置你就像平常设计布局一样,可以随意摆放到你想摆放的位置,当然一般是视频底部。
是的,目前只能这样来做不过获取不了视频内置的字幕。最好是做到也能获取到内置字幕,其实ijkplayer获取内置字幕的方式和android原生的mediaplayer一样。在显示内置字幕时候,同样也是用一个TextView覆盖在你的VideoView上面展示。那么你完全可以做到兼容内置字幕和外挂字幕,因为它们显示字幕的方式是一样的。现在问题ijkplayer内置字幕切换容易出现崩溃。
是的,目前只能这样来做不过获取不了视频内置的字幕。最好是做到也能获取到内置字幕,其实ijkplayer获取内置字幕的方式和android原生的mediaplayer一样。在显示内置字幕时候,同样也是用一个TextView覆盖在你的VideoView上面展示。那么你完全可以做到兼容内置字幕和外挂字幕,因为它们显示字幕的方式是一样的。现在问题ijkplayer内置字幕切换容易出现崩溃。
你是指addTimedTextSource,然后注册OnTimedTextListener这种方式吗,我试过ijk的OnTimedTextListener里面的方法并没有回调,还得再研究一下