Skip to content

使用方法

安卓音频原生插件,支持本地和网络音频播放进度监听,获取音频时长等,支持录音,支持自定义录音参数

联系作者

关注微信公众号可联系作者

插件地址

https://ext.dcloud.net.cn/plugin?id=14803

权限

音频操作

  • android.permission.INTERNET
  • android.permission.ACCESS_NETWORK_STATE
  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.WRITE_EXTERNAL_STORAGE

录音操作

  • android.permission.RECORD_AUDIO
  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.WRITE_EXTERNAL_STORAGE

用法

音频操作

在需要使用插件的页面加载以下代码

js
const module = uni.requireNativePlugin("leven-audio-AudioModule");

录音操作

在需要使用插件的页面加载以下代码

js
const recordModule = uni.requireNativePlugin("leven-audio-RecordModule");

页面内容

vue
<template>
  <view>
    <uni-card title="安卓音频操作原生插件——音频播放">
      <button type="primary" @click="requestPermission">存储权限</button>
      <button type="primary" @click="play">播放音频</button>
      <button type="primary" @click="setSeek">设置播放位置</button>
      <button type="primary" @click="onPlayListener">监听播放进度</button>
      <button type="primary" @click="getCurrentPosition">获取当前播放位置</button>
      <button type="primary" @click="pause">暂停播放</button>
      <button type="primary" @click="replay">继续播放</button>
      <button type="primary" @click="stop">停止播放</button>
      <button type="primary" @click="getDuration">音频时长</button>
    </uni-card>
    <uni-card title="安卓音频操作原生插件——录音">
      <button type="primary" @click="recorderPermission">麦克风权限</button>
      <button type="primary" @click="startRecorder">开始录音</button>
      <button type="primary" @click="stopRecorder">结束录音</button>
    </uni-card>
  </view>
</template>

<script>
  const module = uni.requireNativePlugin("leven-audio-AudioModule");
  const recordModule = uni.requireNativePlugin("leven-audio-RecordModule");
  export default {
    data() {
      return {
        // 当前播放音乐的索引
        playIndex: 0
      }
    },
    methods: {
      // 存储权限
      requestPermission() {
        module.requestPermission(res => {
          console.log(res)
        });
      },
      // 播放音频
      play() {
        let pathArr = [
          "/storage/emulated/0/Download/WeiXin/赵雷-成都.mp3",
          "/storage/emulated/0/Download/WeiXin/刀郎-西海情歌.mp3",
          "http://www.yeyuboke.com/svga/刘德华-孤星泪.mp3"
        ];
        let index = this.playIndex % pathArr.length;
        module.play({
          url: pathArr[index]
        }, res => {
          this.playIndex++;
          console.log(res)
          //这里可以监听播放进度
          // this.onPlayListener();
        });
      },
      // 设置播放位置
      setSeek() {
        module.setSeek({
          seek: 90
        }, res => {
          console.log(res)
        });
      },
      // 监听播放进度
      onPlayListener() {
        module.onPlayListener(res => {
          console.log(res)
        });
      },
      // 获取当前播放位置
      getCurrentPosition() {
        module.getCurrentPosition(res => {
          console.log(res)
        });
      },
      // 暂停播放
      pause() {
        module.pause(res => {
          console.log(res)
        });
      },
      // 继续播放
      replay() {
        module.replay(res => {
          console.log(res)
        });
      },
      // 停止播放
      stop() {
        module.stop(res => {
          console.log(res)
        });
      },
      // 获取音频时长
      getDuration() {
        module.getDuration({
          path: "/storage/emulated/0/Download/WeiXin/赵雷-成都.mp3"
        }, res => {
          console.log(res)
        });
      },
      // 麦克风权限
      recorderPermission() {
        recordModule.requestPermission(res => {
          console.log(res)
        })
      },
      // 开始录音
      startRecorder() {
        recordModule.start({
          saveDir: "/storage/emulated/0/leven_file"
        }, res => {
          console.log(res)
        })
      },
      // 结束录音
      stopRecorder() {
        recordModule.stop(res => {
          console.log(res)
        })
      }
    }
  }
</script>

<style>

</style>