Cocoscreator 播放远程mp3文件,网页版可以,但是ios版本不行。

cocoscreator 播放远程mp3文件,网页版可以,但是ios版本不行。

代码如下:
cc.loader.load(“http://resource.gowild.cn//storage/emulated/0/137146120921479449942099.mp3”,function(err,audio){
cc.audioEngine.playEffect(audio);
});

ios 日志如下:

V/AudioPlayer (147): AudioPlayer::play2d, _alSource: 2400
V/AudioPlayer (69): ~AudioPlayer() (0x115a229e0),id=17
V/AudioPlayer (83): AudioPlayer::destory begin, id=17
V/AudioPlayer (128): Before alSourceStop
V/AudioPlayer (130): Before alSourcei
V/AudioPlayer (136): AudioPlayer::destory end,id=7

还有一个问题,
cc.audioEngine.playEffec 这个方法播放完之后,有回调函数吗?

目前不支持远程加载 mp3

请问一下,目前还不支持远程播放mp3吗

不支持远程,还是有点蛋疼, 很多需求需要这样,
比如音乐类的游戏, 不可能让游戏服负担所有玩家下载音乐的流量.啊…

https://github.com/c8827595/cocos-creator-NativeLoadMusic

使用jsb.downloader在原生可以下載之後播放 可供參考
function downloadAudio (item, callback) {
let audioDownloader = new jsb.Downloader();
if (/^http/.test(item.url)) {
let index = item.url.lastIndexOf(’/’);
let fileName = item.url.substr(index+1);
let storagePath = jsb.fileUtils.getWritablePath() + fileName;

    if (jsb.fileUtils.isFileExist(storagePath)) { //已有資料 直接取
        item.url = storagePath;
        item.rawUrl = storagePath;
        callback && callback(null, item);
    }

    else {
        audioUrlMap[item.url] = { item, callback };
        audioDownloader.createDownloadFileTask(item.url, storagePath); //將mp3下載到本地
        audioDownloader.setOnFileTaskSuccess(function (Sender) //下載完播放
        {
            item.rawUrl = storagePath;
            callback(null, item);
        });
     
    }
}
else {
    return item.url;
}

}

(帖子被作者删除,如无标记将在 24 小时后自动删除)