uniapp的录音与播放

14 篇文章 0 订阅
3 篇文章 0 订阅

录音

onLoad(options) {
    let that=this
    this.recorderManager = uni.getRecorderManager(); //创建录音管理
},

methods:{
    //开始录音
    startRecord(index){
    let that=this
    uni.authorize({
        scope:"scope.record",
        success(){
        uni.showToast({
            icon:"none",
            title:"开始录音"
        })
        that.recorderManager.start();
        that.recorderManager.onStart()
        console.log("录音执行")
        },
        fail() {
        uni.showModal({
            title: '提示',
            content: '您未授权录音,功能将无法使用',
            showCancel: true,
            confirmText: "授权",
            confirmColor: "#52a2d8",
            success(res) {
                if(res.confirm){
                uni.openSetting({
                
                            })
            }else{
                                    
            }
            }
        })
        }
    })
    },


    //结束录音
    endRecord(index){
    let that=this
    uni.stopRecord({
        success:function(e){
        that.recorderManager.stop();
            that.recorderManager.onStop((res=>{
            that.audioTempFile=res.tempFilePath
            that.uploadAudio(index)
        }))
        }
    })
    }
}

播放音频文件

onLoad(options) {
    let innerAudioContext = uni.createInnerAudioContext();    //创建音频文件
    innerAudioContext.autoplay = false;    //不自动播放
    innerAudioContext.src = this.audioSrc;    //音频文件链接
    this.innerAudioContext=innerAudioContext
},

methods:{
    //开始音频文件
    startAudio(){
        this.innerAudioContext.play(() => {
    console.log('开始播放');
        });
    this.innerAudioContext.onError((res) => {
        console.log(res.errMsg);
        console.log(res.errCode);
    });
    },

    //结束音频
    endAudio(){
    let that=this
    uni.showToast({
        icon:"none",
        title:"已结束"
    })
    this.innerAudioContext.stop(() => {
        console.log('已暂停');
    });
    this.innerAudioContext.onError((res) => {
        console.log(res.errMsg);
        console.log(res.errCode);
    });
    },

    //暂停音频文件
    pauseAudio(desc){
        let that=this
    uni.showToast({
        icon:"none",
        title:desc
    })
    this.innerAudioContext.pause(() => {
        console.log('已暂停');
    });
    this.innerAudioContext.onError((res) => {
        console.log(res.errMsg);
         console.log(res.errCode);
    });
    }
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UniApp 是一款基于 Vue.js 的跨平台框架,用于快速构建原生应用,包括iOS、Android、Web、H5等。如果你想在 UniApp 中实现录音功能的Demo,你可以按照以下步骤进行: 1. **引入依赖**:在项目中使用 UniApp 提供的`uni-app-plus/audio`模块,该模块包含录音播放的功能。 ```javascript import { uniAppPlus } from '@dcloudio/uni-app-plus'; uniAppPlus.useAudio(); ``` 2. **请求录音权限**:在使用录音功能前,需要先检查设备是否支持录音并请求权限。 ```javascript uni.requestPermissions({ permissions: ['audio'], success: () => { // 用户同意,继续录音 }, fail: (res) => { console.error('录音权限拒绝', res); }, }); ``` 3. **开始录音**:使用`startRecord`方法启动录音,提供一个回调来处理录音数据。 ```javascript uniAppPlus.startRecord({ success: (recordingData) => { // 录音数据已生成,你可以将它存储或发送 console.log('录音数据:', recordingData); }, error: (err) => { console.error('录音失败', err); }, }); ``` 4. **暂停/停止录音**:使用`pauseRecord`和`stopRecord`方法控制录音。 5. **停止后处理**:在`stopRecord`回调中,记得调用`uniAppPlus.stopRecord()`停止录音,并可能需要调用`uniAppPlus.getRecordingDuration()`获取录音长度,然后决定下一步操作。 ```javascript uniAppPlus.stopRecord().then(() => { const duration = uniAppPlus.getRecordingDuration(); // 处理停止录音后的逻辑,如保存录音文件等 }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值