如题
朋友 这个问题解决没啊。脑壳疼
朋友 这个问题解决没啊。脑壳疼
解决了,报了arguments out of range异常,不知道你的是不是也是这个引起的,跟代码应该是在系统AudioTrack里面报的应该是miui里面改啥了
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1)
我们添加了这个设置后就Ok了
朋友 这个问题解决没啊。脑壳疼
解决了,报了arguments out of range异常,不知道你的是不是也是这个引起的,跟代码应该是在系统AudioTrack里面报的应该是miui里面改啥了
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1)
我们添加了这个设置后就Ok了
我也设置了这个 但是还是没有效果。
朋友 这个问题解决没啊。脑壳疼
解决了,报了arguments out of range异常,不知道你的是不是也是这个引起的,跟代码应该是在系统AudioTrack里面报的应该是miui里面改啥了
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1)
我们添加了这个设置后就Ok了我也设置了这个 但是还是没有效果。
你报的是什么错误?都设置了哪些参数
朋友这个问题解决没啊。脑壳疼
解决了,报了参数超出范围异常,不知道你的是不是也是这个引起的,跟代码应该是在系统AudioTrack里面报的应该是miui里面改啥了
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,“soundtouch” ,1)
我们添加了这个设置后就Ok了

看这似乎和你是一样的错误但是我设置后没有起作用
ijkplayer.setOption
朋友这个问题解决没啊。脑壳疼
解决了,报了参数超出范围异常,不知道你的是不是也是这个引起的,跟代码应该是在系统AudioTrack里面报的应该是miui里面改啥了
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,“soundtouch” ,1)
我们添加了这个设置后就Ok了
看这似乎和你是一样的错误但是我设置后没有起作用
ijkplayer.setOption这个方法你调用了几次,都设置了什么参数
ijkplayer.setOption
朋友这个问题解决没啊。脑壳疼
解决了,报了参数超出范围异常,不知道你的是不是也是这个引起的,跟代码应该是在系统AudioTrack里面报的应该是miui里面改啥了
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,“soundtouch”, 1)
我们添加了这个设置后就确定了
看这似乎和你是一样的错误但是我设置后没有起作用ijkplayer.setOption这个方法你调用了几次,都设置了什么参数
大佬我设置了这些,不明白错误的发生原因,和我设置的有什么关系呢。
ijkplayer.setOption
朋友这个问题解决没啊。脑壳疼
解决了,报了参数超出范围异常,不知道你的是不是也是这个引起的,跟代码应该是在系统AudioTrack里面报的应该是miui里面改啥了
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,“soundtouch”, 1)
我们添加了这个设置后就确定了
看这似乎和你是一样的错误但是我设置后没有起作用ijkplayer.setOption这个方法你调用了几次,都设置了什么参数
大佬我设置了这些,不明白错误的发生原因,和我设置的有什么关系呢。
你把这些先都给注释掉,只加这一个试试吧,因为看不到源码,只能一点一点试
ijkplayer.setOption
朋友这个问题解决没啊。脑壳疼
解决了,报了参数超出范围异常,不知道你的是不是也是这个引起的,跟代码应该是在系统AudioTrack里面报的应该是miui里面改啥了
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,“soundtouch”, 1)
我们添加了这个设置后就确定了
看这似乎和你是一样的错误但是我设置后没有起作用ijkplayer.setOption这个方法你调用了几次,都设置了什么参数
大佬我设置了这些,不明白错误的发生原因,和我设置的有什么关系呢。
你把这些先都给注释掉,只加这一个试试吧,因为看不到源码,只能一点一点试
ijkplayer.setOption
朋友这个问题解决没啊。脑壳疼
解决了,报了参数超出范围异常,不知道你的是不是也是这个引起的,跟代码应该是在系统AudioTrack里面报的应该是miui里面改啥了
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,“soundtouch”, 1)
我们添加了这个设置后就确定了
看这似乎和你是一样的错误但是我设置后没有起作用ijkplayer.setOption这个方法你调用了几次,都设置了什么参数
大佬我设置了这些,不明白错误的发生原因,和我设置的有什么关系呢。
你把这些先都给注释掉,只加这一个试试吧,因为看不到源码,只能一点一点试
尝试过了,不行的。现在知道高于1.0速度无法生效,低于1.0可以。
ijkplayer.setOption
朋友这个问题解决没啊。脑壳疼
解决了,报了参数超出范围异常,不知道你的是不是也是这个引起的,跟代码应该是在系统AudioTrack里面报的应该是miui里面改啥了
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,“soundtouch”, 1)
我们添加了这个设置后就确定了
看这似乎和你是一样的错误但是我设置后没有起作用ijkplayer.setOption这个方法你调用了几次,都设置了什么参数
大佬我设置了这些,不明白错误的发生原因,和我设置的有什么关系呢。
你把这些先都给注释掉,只加这一个试试吧,因为看不到源码,只能一点一点试
ijkplayer.setOption
朋友这个问题解决没啊。脑壳疼
解决了,报了参数超出范围异常,不知道你的是不是也是这个引起的,跟代码应该是在系统AudioTrack里面报的应该是miui里面改啥了
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,“soundtouch”, 1)
我们添加了这个设置后就确定了
看这似乎和你是一样的错误但是我设置后没有起作用ijkplayer.setOption这个方法你调用了几次,都设置了什么参数
大佬我设置了这些,不明白错误的发生原因,和我设置的有什么关系呢。
你把这些先都给注释掉,只加这一个试试吧,因为看不到源码,只能一点一点试
尝试过了,不行的。现在知道高于1.0速度无法生效,低于1.0可以。
奇怪了,我按照你的设置也设置一遍,只要有soundtouch这个配置就可以高于1倍速,没有就不行,米8上测试的
ijkplayer.setOption
朋友这个问题解决没啊。脑壳疼
解决了,报了参数超出范围异常,不知道你的是不是也是这个引起的,跟代码应该是在系统AudioTrack里面报的应该是miui里面改啥了
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,“soundtouch”, 1)
我们添加了这个设置后就确定了
看这似乎和你是一样的错误但是我设置后没有起作用ijkplayer.setOption这个方法你调用了几次,都设置了什么参数
大佬我设置了这些,不明白错误的发生原因,和我设置的有什么关系呢。
你把这些先都给注释掉,只加这一个试试吧,因为看不到源码,只能一点一点试
ijkplayer.setOption
朋友这个问题解决没啊。脑壳疼
解决了,报了参数超出范围异常,不知道你的是不是也是这个引起的,跟代码应该是在系统AudioTrack里面报的应该是miui里面改啥了
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,“soundtouch”, 1)
我们添加了这个设置后就确定了
看这似乎和你是一样的错误但是我设置后没有起作用ijkplayer.setOption这个方法你调用了几次,都设置了什么参数
大佬我设置了这些,不明白错误的发生原因,和我设置的有什么关系呢。
你把这些先都给注释掉,只加这一个试试吧,因为看不到源码,只能一点一点试
尝试过了,不行的。现在知道高于1.0速度无法生效,低于1.0可以。
奇怪了,我按照你的设置也设置一遍,只要有soundtouch这个配置就可以高于1倍速,没有就不行,米8上测试的
老铁 你能弄个简单的dome嘛,我这也是试了个各种设置,也没有起到相应的效果,你的项目是自己写的播放器嘛,ijk也是自己编译的嘛。我现在用了gsyplayer还有playerbase 这两个开源的播放器来进行测试的 ,测试机是mix2s 和mix 3 都是云测试机。
ijkplayer.setOption
朋友这个问题解决没啊。脑壳疼
解决了,报了参数超出范围异常,不知道你的是不是也是这个引起的,跟代码应该是在系统AudioTrack里面报的应该是miui里面改啥了
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,“soundtouch”, 1)
我们添加了这个设置后就确定了
看这似乎和你是一样的错误但是我设置后没有起作用ijkplayer.setOption这个方法你调用了几次,都设置了什么参数
大佬我设置了这些,不明白错误的发生原因,和我设置的有什么关系呢。
你把这些先都给注释掉,只加这一个试试吧,因为看不到源码,只能一点一点试
ijkplayer.setOption
朋友这个问题解决没啊。脑壳疼
解决了,报了参数超出范围异常,不知道你的是不是也是这个引起的,跟代码应该是在系统AudioTrack里面报的应该是miui里面改啥了
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,“soundtouch”, 1)
我们添加了这个设置后就确定了
看这似乎和你是一样的错误但是我设置后没有起作用ijkplayer.setOption这个方法你调用了几次,都设置了什么参数
大佬我设置了这些,不明白错误的发生原因,和我设置的有什么关系呢。
你把这些先都给注释掉,只加这一个试试吧,因为看不到源码,只能一点一点试
尝试过了,不行的。现在知道高于1.0速度无法生效,低于1.0可以。
奇怪了,我按照你的设置也设置一遍,只要有soundtouch这个配置就可以高于1倍速,没有就不行,米8上测试的
老铁 你能弄个简单的dome嘛,我这也是试了个各种设置,也没有起到相应的效果,你的项目是自己写的播放器嘛,ijk也是自己编译的嘛。我现在用了gsyplayer还有playerbase 这两个开源的播放器来进行测试的 ,测试机是mix2s 和mix 3 都是云测试机。
用的这个
api 'com.github.tcking:ijkplayer-java:0.8.8'
api 'com.github.tcking:ijkplayer-armv7a:0.8.8'
小米8升级到9.0, 调速大于1.0好像是没有效果
同样遇到这个问题,求解,是miui独有的问题还是9.0的问题?
小米8升级到9.0, 调速大于1.0好像是没有效果
同样遇到这个问题,求解,是miui独有的问题还是9.0的问题?
小米8升级到9.0, 调速大于1.0好像是没有效果
兄弟解决了吗
朋友 这个问题解决没啊。脑壳疼
解决了,报了arguments out of range异常,不知道你的是不是也是这个引起的,跟代码应该是在系统AudioTrack里面报的应该是miui里面改啥了
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1)
我们添加了这个设置后就Ok了
添加了貌似还是不好使。。。
朋友 这个问题解决没啊。脑壳疼
解决了,报了arguments out of range异常,不知道你的是不是也是这个引起的,跟代码应该是在系统AudioTrack里面报的应该是miui里面改啥了
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1)
我们添加了这个设置后就Ok了添加了貌似还是不好使。。。
确实是,我也添加过ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1),但是仍旧没有效果,现在我把播放器的解码器换成exo了,解决了这个问题
朋友 这个问题解决没啊。脑壳疼
解决了,报了arguments out of range异常,不知道你的是不是也是这个引起的,跟代码应该是在系统AudioTrack里面报的应该是miui里面改啥了
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1)
我们添加了这个设置后就Ok了添加了貌似还是不好使。。。
确实是,我也添加过ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1),但是仍旧没有效果,现在我把播放器的解码器换成exo了,解决了这个问题
我解决了,谢谢
朋友 这个问题解决没啊。脑壳疼
解决了,报了arguments out of range异常,不知道你的是不是也是这个引起的,跟代码应该是在系统AudioTrack里面报的应该是miui里面改啥了
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1)
我们添加了这个设置后就Ok了添加了貌似还是不好使。。。
确实是,我也添加过ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1),但是仍旧没有效果,现在我把播放器的解码器换成exo了,解决了这个问题
我解决了,谢谢
兄得怎么解决的啊
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1)
这个设置要放在 prepareAsync()之前设置 紧接着 prepareAsync()这个之前设置就行了
我之前是在new IjkMediaPlayer() 之后设置 一直不起作用 后来改了之后 就ok了
除了ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1);
还有别的方法嘛?主要是用exo都是没有问题的 证明audiotrack是没有问题的。
这个问题可以抓下日志:
mAfFrameCount:1920 mAfSampleRate:48000 sampleRate:44100 speed:2.000000 mFrameCount:3544 < minFrameCount:7068
原因是:
ijkplayer调用getMinBufferSize(stereo,44100,16bit) 结果返回为7088,minFrameCount: 7088/4 = 1772
ijkplayer创建AudioTrack时bufferSizeInBytes设置为2xgetMinBufferSize,即 mFrameCount:3544
按照google官方代码注释 setPlaybackParams,只需要mFrameCount >= speed*getMinBufferSize/4 就可以了。也就是说mFrameCount=3544就可以了。
但是基于android9的mi8,在调用setPlaybackParams时要求2 x speed x getMinBufferSize/4
完整的错误日志是这样的:
D/AudioTrack: isSampleRateSpeedAllowed_l denied mAfLatency:80 mAfFrameCount:1920 mAfSampleRate:48000 sampleRate:44100 speed:1.500000 mFrameCount:3544 < minFrameCount:5302
W/AudioTrack: setPlaybackRate(1.500000, 1.000000) failed (buffer size)
W/System.err: java.lang.IllegalArgumentException: arguments out of range
at android.media.AudioTrack.native_set_playback_params(Native Method)
at android.media.AudioTrack.setPlaybackParams(AudioTrack.java:1902)
java.lang.IllegalArgumentException: arguments out of range
W/System.err: at android.media.AudioTrack.native_set_playback_params(Native Method)
at android.media.AudioTrack.setPlaybackParams(AudioTrack.java:1902)
解决方案有两种:
1。创建AudioTrack是,bufferSizeInBytes参数设置为4*minBufferSize,可能会导致音频延迟增加一倍
2。走软的加速,即soundtouch,可能会增加性能消耗
感觉这是小米的一个bug。
正如jiaobinbin同学说的那样,需要在prepareAsync之前设置就能生效,如果对象new出来以后你又调用了reset函数,那么久会把这个soundtouch属性干掉了,所以在prepareAsync之前再设置就好了,已经解决了米8上的这个问题
正如jiaobinbin同学说的那样,需要在prepareAsync之前设置就能生效,如果对象new出来以后你又调用了reset函数,那么久会把这个soundtouch属性干掉了,所以在prepareAsync之前再设置就好了,已经解决了米8上的这个问题
大佬留个QQ吧 想问你个问题 我根据上面的那些解决方案 现在在米8上倍速播放还是不行
解决方案有两种:
1。创建AudioTrack是,bufferSizeInBytes参数设置为4*minBufferSize,可能会导致音频延迟增加一倍
2。走软的加速,即soundtouch,可能会增加性能消耗感觉这是小米的一个bug。
我想问一下 你说的这个解决方案是在java层处理的吗 有相关的代码吗 你是怎么把AudioTrack和ijkplayer关联的?
解决方案有两种:
1。创建AudioTrack是,bufferSizeInBytes参数设置为4*minBufferSize,可能会导致音频延迟增加一倍
2。走软的加速,即soundtouch,可能会增加性能消耗
感觉这是小米的一个bug。我想问一下 你说的这个解决方案是在java层处理的吗 有相关的代码吗 你是怎么把AudioTrack和ijkplayer关联的?
ijkplayer通过JNI回调回去的,不需要你添加。
建议使用soundtouch方案,需要执行下 init-android-soundtouch.sh,重新编译ijkplayer,然后再ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1)应该就行了
解决方案有两种:
1。创建AudioTrack是,bufferSizeInBytes参数设置为4*minBufferSize,可能会导致音频延迟增加一倍
2。走软的加速,即soundtouch,可能会增加性能消耗
感觉这是小米的一个bug。我想问一下 你说的这个解决方案是在java层处理的吗 有相关的代码吗 你是怎么把AudioTrack和ijkplayer关联的?
ijkplayer通过JNI回调回去的,不需要你添加。
建议使用soundtouch方案,需要执行下 init-android-soundtouch.sh,重新编译ijkplayer,然后再ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1)应该就行了
多谢
解决方案有两种:
1。创建AudioTrack是,bufferSizeInBytes参数设置为4*minBufferSize,可能会导致音频延迟增加一倍
2。走软的加速,即soundtouch,可能会增加性能消耗
感觉这是小米的一个bug。我想问一下 你说的这个解决方案是在java层处理的吗 有相关的代码吗 你是怎么把AudioTrack和ijkplayer关联的?
ijkplayer通过JNI回调回去的,不需要你添加。
建议使用soundtouch方案,需要执行下 init-android-soundtouch.sh,重新编译ijkplayer,然后再ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1)应该就行了
如果我直接调用ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1)行吗 还是必须重新编译一下 init-android-soundtouch.sh?
解决方案有两种:
1。创建AudioTrack是,bufferSizeInBytes参数设置为4*minBufferSize,可能会导致音频延迟增加一倍
2。走软的加速,即soundtouch,可能会增加性能消耗
感觉这是小米的一个bug。我想问一下 你说的这个解决方案是在java层处理的吗 有相关的代码吗 你是怎么把AudioTrack和ijkplayer关联的?
ijkplayer通过JNI回调回去的,不需要你添加。
建议使用soundtouch方案,需要执行下 init-android-soundtouch.sh,重新编译ijkplayer,然后再ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1)应该就行了如果我直接调用ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1)行吗 还是必须重新编译一下 init-android-soundtouch.sh?
必须执行init-android-soundtouch.sh,重新编译
解决方案有两种:
1。创建AudioTrack是,bufferSizeInBytes参数设置为4*minBufferSize,可能会导致音频延迟增加一倍
2。走软的加速,即soundtouch,可能会增加性能消耗
感觉这是小米的一个bug。我想问一下 你说的这个解决方案是在java层处理的吗 有相关的代码吗 你是怎么把AudioTrack和ijkplayer关联的?
ijkplayer通过JNI回调回去的,不需要你添加。
建议使用soundtouch方案,需要执行下 init-android-soundtouch.sh,重新编译ijkplayer,然后再ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1)应该就行了如果我直接调用ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1)行吗 还是必须重新编译一下 init-android-soundtouch.sh?
必须执行init-android-soundtouch.sh,重新编译
我在github上找到android-soundtouch.sh这个文件了 但是环境是windows的 这怎么编译呢
Most helpful comment
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1)
这个设置要放在 prepareAsync()之前设置 紧接着 prepareAsync()这个之前设置就行了
我之前是在new IjkMediaPlayer() 之后设置 一直不起作用 后来改了之后 就ok了