拼音学习项目笔记
关于数据更新机制
(1)v-if 关闭组件的时候,会销毁数据,可以用于实现返回父组件关闭音频等媒体,如果只是界面的开关的话,用 v-show 即可
(2)离开子组件后,父组件所传递的数据需要清空,切记不要在网络请求里做清空操作,因为网络请求是有延迟的,一般放在打开子组件的事件里执行清空操作
关于 audio
对于不同格式的音频,audio 的播放机制不一样,对于 base64 等流媒体,audio 采用边下边播的机制,对于 MP3 等非流媒体,audio 采用下载完之后再播放的机制,所以为了播放效果更好,防止出现等待状况,最好把音频转换为流媒体的形式,下面是我写的一个 MP3 转 base64 的示例:
mp3ToBase64(url) {
const el = document.getElementById("voiceM");
const temp = {
headers: {
"Content-Type": " audio/mpeg3"
},
responseType: "arraybuffer"
};
http.get(url, "", temp).then(res => {
const val = new Buffer(res.data, "binary").toString("base64");
const audioUrl = `data:${res.headers[
"content-type"
].toLowerCase()};base64,${val}`;
el.src = audioUrl;
el.play();
});
}
本文标题:拼音学习项目笔记
文章作者:Canace
发布时间:2019-03-19
最后更新:2023-05-26
原始链接:https://canace.site/%E6%8B%BC%E9%9F%B3%E5%AD%A6%E4%B9%A0%E9%A1%B9%E7%9B%AE%E7%AC%94%E8%AE%B0/
版权声明:转载请注明出处
分享