我通过文本转成语音,得到了一段arraybuffer 内存数据, 然后我想直接进行播放。
怎么转成cocos可以播的格式。
要发布到 浏览器,微信小游戏和抖音小游戏
我用原生可以播。 web和小游戏,但是写那么多代码也麻烦。
我通过文本转成语音,得到了一段arraybuffer 内存数据, 然后我想直接进行播放。
怎么转成cocos可以播的格式。
要发布到 浏览器,微信小游戏和抖音小游戏
我用原生可以播。 web和小游戏,但是写那么多代码也麻烦。
浏览器的本地音频文件?是不是用input标签来获取的本地文件,如果是的话,那先给个简单版本的,直接用File对象转成URL即可;
示例:
input/* HTMLInputElement */.click();
input.onchange = () => {
let file = input.files[0];
if (file) {
// 就这个函数
let url = URL.createObjectURL(file);
// URL——cocos版本
assetManager.loadRemote(url, { ext: '.mp3' }, (_, clip: AudioClip) => {
// this._source.clip = clip;
// this._source.play();
this._source/* AudioSource */.playOneShot(clip);
// 用完回收
URL.revokeObjectURL(url);
});
// URL——浏览器标签版本
let audio = document.createElement('audio');
audio.src = url;
audio.play();
audio.onload = () => {
// 用完回收
URL.revokeObjectURL(url);
};
// 清空当前选择
input.value = '';
}
};
如果只有arraybuffer,也可以用“URL.createObjectURL(new Blob([arrayBuffer]));”,其他代码不变
浏览器的话可以, 小游戏有 blob 这个东西吗。 主要是小游戏要用。
我的arraybuffer 不是file。 我上面描述有问题, 是我从 文本转语音 得到的 arraybuffer。 在内存里