鸿蒙应用与开发-如何在应用中播放音频文件

目录:

1.创建AVPlayer的对象实例

2.监听avPlayer的状态改变做出相应的判断

3.设置播放源

4.停止播放

5.ArkTS中完整的播放音频函数代码

在鸿蒙应用开发中会设计到很多实用音频的效果,这个小案例主要介绍在鸿蒙用ArkTS中的AVPlayer 对象实例来播放音频,并根据播放状态做出相应的处理。

音频调用播放逻辑图

image.png

1.创建AVPlayer的对象实例

要使用 AVPlayer 播放音频,首先需要创建 AVPlayer 的对象实例。下面是在 ArkTS中创建 AVPlayer 实例的示例代码:

//  1. 创建了AVplayer对象实例
const avPlayer = await media.createAVPlayer()
this.avplayer = avPlayer

2.监听avPlayer的状态改变做出相应的判断

一旦创建了 AVPlayer 实例,我们可以监听其状态改变事件,并根据状态做出相应的处理。示例代码演示如何监听 AVPlayer 的状态改变:

avPlayer.on("stateChange", async (state) => {
  if (state === "initialized") {
    //   表示avPlayer已经设置了播放源
    avPlayer.prepare()
  }
  if (state === "prepared") {
    //  表示avPlayer已经进入了准备播放状态,此时就可以通知播放了
    // 设置avPlayer循环播放音频
    avPlayer.loop = true
    avPlayer.play()
    // promptAction.showToast({ message: '正在播放' })
    console.log('正在播放')
  }
})

3.设置播放源

在播放音频之前,需要将音频文件的 URL 设置为 AVPlayer 的播放源。下面是设置播放源的示例代码:

//   3. 设置播放源
avPlayer.url = url

4.停止播放

当需要停止播放音频时,可以调用 AVPlayer 的 stop 方法。下面是停止播放的示例代码:

//   4. 停止播放
this.avplayer.stop()

5.ArkTS中完整的播放音频函数代码

async playMp3(url: string) {
  //  1. 创建了AVplayer对象实例
  const avPlayer = await media.createAVPlayer()
  this.avplayer = avPlayer
  // 2. 监听avPlayer的状态改变
  //avPlayer的状态机
  avPlayer.on("stateChange", async (state) => {
    if (state === "initialized") {
      //   表示avPlayer已经设置了播放源
      avPlayer.prepare()
    }
    if (state === "prepared") {
      //  表示avPlayer已经进入了准备播放状态,此时就可以通知播放了
      // 设置avPlayer循环播放音频
      avPlayer.loop = true
      avPlayer.play()
      // promptAction.showToast({ message: '正在播放' })
      console.log('正在播放')
    }
  })
​
  //   3. 设置播放源
  avPlayer.url = url
}
  • 32
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值