audioCtx真机性能較弱

发布于 8 年前作者 ming364301 次浏览最后编辑 8 年前来自 ask

按照文档,audio对应引入了基本的audio context概念。一个audioCtx对应一个音频

当音频较多,在真机切换播放时,性能较差延时比较高。请问是否有计划进行优化?

10 回复
ecui
ecui1 楼6 年前

收到,我们看看怎么优化下。

xiulandeng
xiulandeng2 楼6 年前

场景比如,bindtouchstart从头播放一个声音。会明显感知到延迟

ryi
ryi4 楼6 年前

感谢迅速反馈,我晚上试一下,今天没带个人电脑。 有可能之后放宽5个innercontext的限制吗

xiafang
xiafang5 楼6 年前

能否提供一下demo看看

dumin
dumin6 楼6 年前

抱歉目前没有线上可跑的实例,我在quickstart项目中简单写了个demo,并进行了测试,

可以复现,麻烦进行尝试。 真机相比开发工具 性能相差很多

<!–index.wxml–>

<view class=“container” bindtouchstart=‘bindTouch’>

<audio id=“sound”></audio>

</view>

/* index.wxss */

.container {

position: absolute;

background-color:black;

width:100%;

height:100%;

}

//index.js

const app = getApp()

const audio_url = https://freesound.org/data/previews/39/39149\_35187-lq.mp3

Page({

data: {},

onReady() {},

bindTouch() {

this.audioCtx.seek(0)

this.audioCtx.play()

},

onLoad() {

this.audioCtx = wx.createAudioContext(‘sound’)

this.audioCtx.setSrc(audio_url)

},

})

juanwang
juanwang7 楼6 年前

情景:点击一次屏幕,从头播放一个小音效,会比较频繁点击。(可以想像为按一下开枪的效果)

代码:

touchStartHandler: function(e) {

    this.audioCtx.seek(0);

    this.audioCtx.play();

}

开发者工具上流畅,真机性能延迟非常大,跪求指导 orz

chou
chou8 楼6 年前

感觉性能稍微好一点,但还是没达到需求,或者没达到web audio api基于create node那种流畅。但好像也不太值得在小程序中引入整个window…或整个api(不知道具体原理)

我的微信号zfan40  希望以后向大佬继续讨论学习

rfan
rfan9 楼6 年前

期待真机中连点三下,听到三个声音

mjin
mjin10 楼6 年前

是啊,本人开发也发现了这个问题,一个是限制了同时5个音频发音,在现实中是有问题的,比如音乐类应用。还有就是播放有延迟,这个延迟虽然不到1秒钟,但是很明显能感觉到。原生app是没有延迟的。