Android-FmlPlayer
Android-FmlPlayer copied to clipboard
循环播放
请问如何实现音频的循环播放啊?setLooping我设置了没有作用
@xadlovezy 什么音频?能提供Log么
@ViTess 就是demo中的sound4.ogg,我设置了 fmlPlayer.setLooping(true);但是就只播放一遍
同样的问题,demo里面的mp3,设置了fmlPlayer.setLooping(true),但只播放一遍。
设置了fmlPlayer.setLooping(true)后,int error = BASS.BASS_ErrorGetCode();的error值是5。
<string name="error_5">Invalid Handle</string>
这个错误看得不是很懂,望解释。
@xadlovezy @WiiliamChik 这是之前加了网络播放的功能后,代码没有调整好的缘故。BASS库创建每一个播放流,都会为其分配一个int类型的句柄,然后所有操作都基于该句柄。目前FmlPlayer内只在其调用prepare后才生成唯一的句柄,而在demo中setLooping在prepare之前,所以才提示“Invalid Handle”,即句柄无效、找不到句柄。
解决方法是,调用prepare后再调用setLooping,或者在FmlPlayer的代码内,找到setSync,将内部的
if (mDataParam != null && mDataParam.fileType == DataParam.FILE_TYPE_URL) {
setLooping(isLoop);
setVolume(mVolume);
setPanning(mPan);
}
改为:
if (mDataParam != null /*&& mDataParam.fileType == DataParam.FILE_TYPE_URL*/) {
setLooping(isLoop);
setVolume(mVolume);
setPanning(mPan);
}
同时在demo的OnCompletionListener里将player给release了,可以加上是否设置了loop来避免release
@ViTess 谢谢你的答复,现在ok了。