> 本文主要介绍一下音频组建,官方推荐使用API方式进行创建,而不建议[使用组建方式](https://uniapp.dcloud.io/component/audio),因为灵活性差,所以使用API方式进行替换
* [播放音频 (使用 uni.createInnerAudioContext)](https://www.kancloud.cn/wangking/uniapp/1968386#__unicreateInnerAudioContext_3)
* [播放背景音频 (使用 uni.getBackgroundAudioManager)](https://www.kancloud.cn/wangking/uniapp/1968386#__unigetBackgroundAudioManager_39)
* [录音功能 (使用 uni.getRecorderManager)](https://www.kancloud.cn/wangking/uniapp/1968386#__unigetRecorderManager_60)
## 播放音频 (使用 uni.createInnerAudioContext)
> 高阶示例代码,可参考hello-uni里的demo
> 官方文档:[https://uniapp.dcloud.io/api/media/audio-context](https://uniapp.dcloud.io/api/media/audio-context)
~~~
<template>
<view class="page">
<button type="default" @tap="play">播放或继续音乐</button>
<button type="default" @tap="pause">暂停音乐</button>
<button type="default" @tap="stop">停止音乐</button>
</view>
</template>
<script>
// 地址可在 http://www.gequdaquan.net/gqss/ 获取
const audioUrl = 'http://m7.music.126.net/20201009174647/76faa967ae92e6b239a950157923c6c1/ymusic/8e8b/9cae/42b8/f4b218f89f27791d1defdfaa4a4862e7.mp3'
const innerAudioContext = uni.createInnerAudioContext();
export default {
onLoad() {
innerAudioContext.src = audioUrl
},
methods: {
play() {
console.log(innerAudioContext.src)
innerAudioContext.play();
},
pause() {
innerAudioContext.pause();
},
stop() {
innerAudioContext.stop();
}
}
}
</script>
~~~
## 播放背景音频 (使用 uni.getBackgroundAudioManager)
> 背景音频就是 App在后台时,仍然在播放音乐
~~~
<template>
<view>
背景音乐播放中
</view>
</template>
<script>
export default {
onLoad() {
const bgAudioMannager = uni.getBackgroundAudioManager();
bgAudioMannager.title = '致爱丽丝';
bgAudioMannager.singer = 'wangkun';
bgAudioMannager.coverImgUrl = 'https://img-cdn-qiniu.dcloud.net.cn/uniapp/doc/uniapp4@2x.png';
bgAudioMannager.src = 'http://m7.music.126.net/20201009174647/76faa967ae92e6b239a950157923c6c1/ymusic/8e8b/9cae/42b8/f4b218f89f27791d1defdfaa4a4862e7.mp3';
}
}
</script>
~~~
## 录音功能 (使用 uni.getRecorderManager)
> 官方文档:[https://uniapp.dcloud.io/api/media/record-manager](https://uniapp.dcloud.io/api/media/record-manager)
~~~
<template>
<view>
<button @tap="startRecord">开始录音</button>
<button @tap="endRecord">停止录音</button>
<button @tap="playVoice">播放录音</button>
</view>
</template>
<script>
const recorderManager = uni.getRecorderManager();
const innerAudioContext = uni.createInnerAudioContext();
innerAudioContext.autoplay = true;
var _this;
export default {
data(){
return {
voicePath : ''
}
},
onLoad() {
_this = this;
recorderManager.onStop(function(res) {
console.log(res)
_this.voicePath = res.tempFilePath
// 使用uni.uploadFile上传到服务器上,此时是mp3格式
});
},
methods: {
startRecord() {
console.log('开始录音');
recorderManager.start({
sampleRate: 16000 // 必须设置是后台设置的参数,不然百度语音识别不了
});
},
endRecord() {
console.log('录音结束');
_this = this;
recorderManager.stop();
},
playVoice() {
console.log('播放录音');
if (this.voicePath) {
innerAudioContext.src = this.voicePath;
innerAudioContext.play();
}
}
}
}
</script>
~~~
- 基础知识
- UNI核心介绍
- flex布局
- 生命周期
- 全局方法
- 组件定义
- 自定义组件
- 全局组件
- 组件之间的数据传输
- 条件编译
- 自定义头部
- 节点信息 (SelectorQuery)
- vuejs基础语法
- 页面跳转以及参数传递
- 事件的监听注册以及触发
- css3动画
- block的妙用
- mixin (混入)
- uniapp快捷键
- vuex状态管理
- 实用功能
- 获取服务提供商
- 启动页 / 启动界面
- 引导页
- tabbar配置
- 头部导航栏基础设置
- 上拉下拉(刷新/加载)
- 第三方登录
- 第三方分享
- 推送通知 之 unipush
- scroll-view双联动
- 配置iOS通用链接(Universal Links)
- 本地缓存操作
- 升级/更新方案
- 热更新
- 图片上传
- 搜索页实现
- canvas绘图助手
- 地图定位
- 第三方支付————todo
- 分类轮播
- 清除应用缓存
- uniapp与webview的实时通讯
- 视频-----todo
- 聊天----todo
- 长列表swiper左右切换
- 第三方插件
- uview
- mescroll
- uCharts (图表)
- 无名 (更新插件)
- 第三方模版
- 自定义基座
- 打包发行
- 要封装的方法
- 缓存 cache.js
- 请求接口 request.js
- 工具类 util.js
- 小程序登录 xcxLogin.js
- 版本更新 update.js
- 优质插件
- 更新插件----todo
- 语音
- 语音识别 (含上传)
- 百度语音合成播报接口
- 官方常用组建
- input 输入框
- image 图片
- audio 音频
- picker 选择器
- video 视频
- scroll-view 滚动视图
- uni-app 地图全解析+事件监听