HarmonyOS鸿蒙Next中api8如何使用ets播放app内置的音效文件?

HarmonyOS鸿蒙Next中api8如何使用ets播放app内置的音效文件? 想跟风搞个敲木鱼的app,需要实现敲木鱼的音效,但是被音乐播放器难住了。请问如何使用ets播放音效?

在官网上看到这样一段代码:

async audioPlayerDemo() {
  let audioPlayer = media.createAudioPlayer();     //创建一个音频播放实例
  this.setCallBack(audioPlayer);                   //设置事件回调
  let fdPath = 'fd://'
  // path路径的码流可通过"hdc file send D:\xxx\01.mp3 /data/app/el1/bundle/public/ohos.acts.multimedia.audio.audioplayer/ohos.acts.multimedia.audio.audioplayer/assets/entry/resources/rawfile" 命令,将其推送到设备上
  let path = '/data/app/el1/bundle/public/ohos.acts.multimedia.audio.audioplayer/ohos.acts.multimedia.audio.audioplayer/assets/entry/resources/rawfile/01.mp3';
  await fileIO.open(path).then((fdNumber) => {
    fdPath = fdPath + '' + fdNumber;
    console.info('open fd success fd is' + fdPath);
  }, (err) => {
    console.info('open fd failed err is' + err);
  }).catch((err) => {
    console.info('open fd failed err is' + err);
  });
  audioPlayer.src = fdPath; //设置src属性,并触发'dataLoad'事件回调
}

里面let path =上的注释说,要用hdc将音频文件推送到设备上。但是我想直接读取音效,有什么办法实现吗


更多关于HarmonyOS鸿蒙Next中api8如何使用ets播放app内置的音效文件?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

楼主您好,可以把文件放入资源目录rawfile中,然后使用resourceManager模块getRawFile接口读取,无需自己拼写路径。

更多关于HarmonyOS鸿蒙Next中api8如何使用ets播放app内置的音效文件?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


关于resourceManager的使用文档哪里可以找到?

在HarmonyOS鸿蒙Next中,使用API 8通过ETS(Extended TypeScript)播放App内置的音效文件,可以通过@ohos.multimedia.audio模块实现。首先,确保音效文件已放置在resources/rawfile目录下。然后,使用AudioPlayer类进行播放。

以下是一个简单的示例代码:

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

// 创建AudioPlayer实例
let audioPlayer = audio.createAudioPlayer();

// 设置音效文件路径
let filePath = 'entry/resources/rawfile/sound_effect.mp3';

// 准备播放
audioPlayer.src = filePath;
audioPlayer.prepare((err) => {
    if (!err) {
        // 开始播放
        audioPlayer.play();
    }
});

// 监听播放完成事件
audioPlayer.on('end', () => {
    console.log('音效播放完成');
});

在这个示例中,首先通过audio.createAudioPlayer()创建了一个AudioPlayer实例。然后,将音效文件的路径赋值给audioPlayer.src,并调用prepare方法准备播放。如果准备成功,调用play方法开始播放。最后,通过监听end事件来处理音效播放完成后的逻辑。

注意:确保在config.json中声明了ohos.permission.MICROPHONE权限,以便访问音频资源。

在HarmonyOS鸿蒙Next的API 8中,使用ETS播放内置音效文件可以通过SoundPlayer实现。首先,将音效文件放入resources/rawfile目录。然后,使用以下代码播放音效:

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

let soundId = soundPlayer.createSoundPlayer('resources/rawfile/sound.mp3', (err) => {
  if (err) {
    console.error('Failed to create sound player');
    return;
  }
  soundPlayer.play(soundId, (err) => {
    if (err) {
      console.error('Failed to play sound');
    }
  });
});

确保在module.json5中声明ohos.permission.MICROPHONE权限。

回到顶部