暴风
暴风
  • 发布:2014-10-21 10:47
  • 更新:2019-09-18 20:22
  • 阅读:5377

plus.audio.Player对象多次播放音频后没有声音了

分类:HBuilder

我在开发一个移动游戏项目,有一些会重复播放的音效。

每当触发音效时,都用plus.audio.createPlayer()临时创建Player对象,然后调用play()播放,完成后设置Player对象为null。

经实际测试发现,一开始音效都没有问题,可以触发。但运行一段时间,重复触发许多次以后,所有音效就都没有声音了,并且也没有任何错误提示。

此时,如果强制关闭应用再重新打开,又可以播放音效,但持续一段时间后,再次无声。

请问这是什么问题?如何解决?很急!

问题补充:是安卓平台上发生的问题。相关代码如下:

{{{
var sound = {

list: {},  

add: function(id, url) {  
    this.list[id] = url;  
},  

play: function(id) {  
    if(this.list[id]) {  
        var e = plus.audio.createPlayer(this.list[id]);  
        e.play(function() {  
            console.log(id + ' played');  
            e = null;  
        }, function(error) {  
            console.log(error.message);  
        });  
    } else {  
    	console.log(id + ' is null');  
    }  
}  

};
}}}
应用启动后会通过sound.add()添加所有音效资源,游戏运行中会随时用sound.play()触发音效。

2014-10-21 10:47 负责人:无 分享
已邀请:
DCloud_App_Array

DCloud_App_Array

请说明是哪个平台的问题,提供完整页面或脚本以便排查问题

  • 暴风 (作者)

    已补充。


    2014-10-21 14:02

爱已成歌

爱已成歌

我也是,楼主有什么办法没。。。急死人了。看了很多遍,和示例里面写的一样的,就是不行

  • 爱已成歌

    我试了下,只能播放29次,后面就不能播放了,也不报错


    2014-11-23 15:15

  • 南墙

    请问你的问题解决了吗,我也遇到了这样的问题


    2018-11-17 18:06

3***@qq.com

3***@qq.com - 学习

plus.audio.createPlayer这个不能播放远程文件,
我用document.createElement("audio")这个,可以,
但是,问题和你说的一样,开始正常,播放多了就没有声音,见鬼了

  • 南墙

    请问你

    的问题解决了吗,我也遇到了这样的问题


    2018-11-17 18:06

南墙

南墙

请问你们的问题解决了吗,我也遇到了这样的问题

崮生

崮生 - https://shenzilong.cn

我也遇到了这个问题,解决方法是要close方法来释放资源

这是我的一个封装

/** 播放音频,返回音频长度以毫秒为单位 */  
export async function playerAudio(url: string, {  
	playCB,  
	errorCB  
}: {  
	playCB: Function,  
	errorCB: Function  
}) {//播放音乐  
	await plusReady()  
	const s = plus.audio.createPlayer(url);  
  
	s.play(playCB, errorCB);  
  
	return new Promise((_resolve, _reject) => {  
		setTimeout(function () {//延时获取,否则可能没有返回长度  
			var num = s.getDuration()*1000;  
			setTimeout(() => {  
				s.close();  
			}, num);  
			_resolve(num)  
		}, 100)  
	})  
}
CJ7235

CJ7235 - 前端爱好者

楼主,我也遇到了相同的问题,多次播放后,就没有声音了,一开始是有的,关闭应用再进来就又有了,请问您的问题解决了么,比较急,希望您可以回复我下

该问题目前已经被锁定, 无法添加新回复