大家吼,我是渣渣灰,一个刚入门前端工作的小渣渣实习生。 嘿嘿,凭借着极致的礼貌,毫无基础的我成功入职了。虽然是一家普普通通的公司,但很温馨。

已然入职了,那自然要为了生存拼命自学啦,不然被人发现我啥都不会咋办,哈哈哈,闲话就提到这。从今天开端,我会在掘金记载下自学之路,以及自学之路上踩过的坑。Ps:同样也是刚开端写技术文章的小渣渣,大佬们轻点喷。

趁便小小吐槽一下,“坑”真多啊,呜呜呜。

渣渣灰采坑日记(一)

踩坑啦踩坑啦

最近公司做的一个app项目,需求加上音讯提示音和角标,和后端老大哥一起协商往后,使用webSocket,好,干,上。 but,webSocket是啥,怎么用嘞,不懂哇,那只能硬着头皮上了。

uni-app官网上摸爬滚打,总算,诶嘿,找到啦,播映音频的方法: uni.createInnerAudioContext(),哇哈哈哈哈,居然还有示例,那不是简简单单,马马虎虎CV一下不就拿捏了嘛。

const innerAudioContext = uni.createInnerAudioContext();
innerAudioContext.autoplay = true;
innerAudioContext.src = 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3';
innerAudioContext.onPlay(() => {
  console.log('开端播映');
});
innerAudioContext.onError((res) => {
  console.log(res.errMsg);
  console.log(res.errCode);
});

渣渣灰采坑日记(一)

坑一

啦啦啦,着小歌,换上CV战神大杀四方,直接将官网示例copy上项目,把src一换,OK,完毕,谬杀。 合理我掏出手机,将代码经过Hbuilder真机运行时,心里都忍不住想装一波啦,但是我忍住了。但是运行了好几次之后,都没有听到那成功的旋律。脸上的笑脸逐步消失啦。

渣渣灰采坑日记(一)

咋办捏,凉拌,再炒个siu鸡蛋,呸,经过不断测验和度娘的协助,总算,踩坑了。 src不可以直接写地址,不管是网络音频仍是本地音频都不可以直接引地址。

过错写法1:innerAudioContext.src = 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3';

过错写法2:innerAudioContext.src = '../images/radio.wav';

正确的写法应该是:

import successAudio from '../../assets/audio/success.wav';
innerAudioContext.src = successAudio;

坑二

呀呼(狗叫中),总算在不断测验下,听见了凯旋的号角,“您有一条……”,顿时觉得格外悦耳。在播映屡次往后,我将手机拿到后端老大哥面前,开端狠狠装那么一波

渣渣灰采坑日记(一)

但是,在播映几次往后,它它它哑巴了,不响了。

渣渣灰采坑日记(一)

怎办捏,在后端老大哥的“嘲笑”下持续找问题。

啪(拍案而起),有了,不是肚子奥,本人男的,嘿嘿。屡次播映音频导致它内存满了,播映失败了,那就需求在播映往后销毁播映容器来释放内存咯。

// 播映完毕后要立马销毁当时容器,防止屡次播报导致内存不足 
innerAudioContext.onEnded(() => { innerAudioContext.destroy(); });

最终附上完好代码:

// 头部引入音频
import successAudio from '../../assets/audio/success.wav';
// 创立音频容器
const innerAudioContext = uni.createInnerAudioContext();
// 将引入的音频放入容器中
innerAudioContext.src = successAudio;
// 播映
innerAudioContext.play();
// 播映完毕后要立马销毁当时容器,防止屡次播报导致内存不足
innerAudioContext.onEnded(() => {
    innerAudioContext.destroy();
});

下班

哦吼吼,天色不早咯(10点),渣渣灰也要下班啦,PS:各位哥哥姐姐们轻点喷。 嗷,对了,我是阿尘,以后会经常发文章提高自己!!!