HarmonyOS鸿蒙Next中点击不同的按钮,播放不同的本地音频

HarmonyOS鸿蒙Next中点击不同的按钮,播放不同的本地音频 想要在一个ets文件下,设计一个界面,包含多个按钮,点击不同的按钮实现播放不同的音频文件,一直没学会,官方的学习文档就是欺负小白的,也给出了复杂播放器的代码,但是音频简单应用的介绍太不友好了。难道音频应用就只能设计播放器?

2 回复

在HarmonyOS鸿蒙Next中,点击不同的按钮播放不同的本地音频可以通过以下步骤实现:

  1. 准备音频文件:将需要播放的音频文件放置在项目的resources/rawfile目录下。

  2. 创建UI界面:在ability_main.xml中定义多个按钮,每个按钮对应一个音频文件。

  3. 编写逻辑代码:在MainAbilitySlice.java中,为每个按钮设置点击事件,使用AudioPlayer类来播放对应的音频文件。

示例代码如下:

import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Button;
import ohos.media.player.Player;

public class MainAbilitySlice extends AbilitySlice {
    private Player player;

    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);

        Button button1 = (Button) findComponentById(ResourceTable.Id_button1);
        Button button2 = (Button) findComponentById(ResourceTable.Id_button2);

        button1.setClickedListener(component -> playAudio(ResourceTable.Rawfile_audio1));
        button2.setClickedListener(component -> playAudio(ResourceTable.Rawfile_audio2));
    }

    private void playAudio(int resId) {
        if (player != null) {
            player.stop();
            player.release();
        }
        player = new Player(getContext());
        player.create(resId);
        player.play();
    }

    @Override
    protected void onStop() {
        super.onStop();
        if (player != null) {
            player.release();
        }
    }
}
  1. 资源文件:在resources/rawfile目录下放置audio1.mp3audio2.mp3文件,并在resources/base/element/string.json中定义资源ID。
{
    "name": "audio1",
    "value": "rawfile/audio1.mp3"
},
{
    "name": "audio2",
    "value": "rawfile/audio2.mp3"
}

通过以上步骤,可以在HarmonyOS鸿蒙Next中实现点击不同按钮播放不同本地音频的功能。

更多关于HarmonyOS鸿蒙Next中点击不同的按钮,播放不同的本地音频的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,可以通过AudioPlayer组件实现点击不同按钮播放不同本地音频的功能。首先,在resources目录下放置音频文件,然后在MainAbilitySlice中初始化AudioPlayer,并为每个按钮设置点击事件,调用AudioPlayerplay方法播放指定音频。示例代码如下:

AudioPlayer audioPlayer = new AudioPlayer(this);
Button button1 = (Button) findComponentById(ResourceTable.Id_button1);
button1.setClickedListener(component -> {
    audioPlayer.play(ResourceTable.Media_audio1);
});

Button button2 = (Button) findComponentById(ResourceTable.Id_button2);
button2.setClickedListener(component -> {
    audioPlayer.play(ResourceTable.Media_audio2);
});

确保在config.json中声明音频播放权限。

回到顶部