HarmonyOS鸿蒙Next中AVPlayer如何播放URL的Mp3文件并获取音频时长

HarmonyOS鸿蒙Next中AVPlayer如何播放URL的Mp3文件并获取音频时长 AVPlayer如何播放URL的Mp3文件并获取音频时长

3 回复

您可以参考一下官网的示例demo: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/using-avplayer-for-playback-V5#完整示例

// 以下demo为通过url设置网络地址来实现播放直播码流的demo
async avPlayerLiveDemo() {
  // 创建avPlayer实例对象
  let avPlayer: media.AVPlayer = await media.createAVPlayer();
  // 创建状态机变化回调函数
  this.setAVPlayerCallback(avPlayer);
  this.isSeek = false; // 不支持seek操作
  avPlayer.url = 'http://xxx.xxx.xxx.xxx:xx/xx/index.mp3';
}

获取音频时长:准备播放:调用prepare(),AVPlayer进入prepared状态,此时可以获取duration,设置音量。

支持的,不过直播场景不支持seek操作。AVPlayer支持在prepared、playing、paused、completed状态下调用seek方法进行跳转操作。需要注意的是,seek方法的参数timeMs必须在[0, duration]范围内。

您可以参考一下播放状态变化示意图: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/using-avplayer-for-playback-V5

更多关于HarmonyOS鸿蒙Next中AVPlayer如何播放URL的Mp3文件并获取音频时长的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,使用AVPlayer播放URL的Mp3文件并获取音频时长可以通过以下步骤实现:

  1. 创建AVPlayer实例: 使用AVPlayer.create(context)方法创建AVPlayer实例。

  2. 设置数据源: 使用setSource(uri)方法设置Mp3文件的URL作为数据源。例如:

    let uri = 'http://example.com/audio.mp3';
    avPlayer.setSource(uri);
  3. 准备播放器: 调用prepare()方法准备播放器。在准备完成后,播放器会自动获取音频的元数据,包括时长。

  4. 获取音频时长: 在播放器准备完成后,可以通过getDuration()方法获取音频的总时长。例如:

    let duration = avPlayer.getDuration();
  5. 播放音频: 调用play()方法开始播放音频。

完整示例代码如下:

import media from '@ohos.multimedia.media';

let avPlayer = media.createAVPlayer();
let uri = 'http://example.com/audio.mp3';
avPlayer.setSource(uri);
avPlayer.prepare();
avPlayer.on('prepared', () => {
    let duration = avPlayer.getDuration();
    console.log('Audio duration:', duration);
    avPlayer.play();
});

在HarmonyOS鸿蒙Next中,使用AVPlayer播放URL的MP3文件并获取音频时长,可以通过以下步骤实现:

  1. 创建AVPlayer实例:

    AVPlayer avPlayer = new AVPlayer(context);
  2. 设置数据源: 使用setSource()方法设置MP3文件的URL。

    avPlayer.setSource(new AVPlayer.AVSource("/sdcard/test.mp3"));
  3. 准备播放器: 调用prepare()方法准备播放器。

    avPlayer.prepare();
  4. 获取音频时长: 在准备完成后,通过getDuration()方法获取音频时长。

    int duration = avPlayer.getDuration();
  5. 开始播放: 调用play()方法开始播放音频。

    avPlayer.play();
  6. 释放资源: 播放完成后,调用release()方法释放资源。

    avPlayer.release();

通过这些步骤,你可以在HarmonyOS鸿蒙Next中成功播放URL的MP3文件并获取其时长。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!