android - Android SoundPool指南

标签 android audio playback soundpool

我偶然发现了听起来很酷的“SoundPool”功能。但是在研究了数小时的Android文档和示例之后,我什么也做不了。我不确定我是否错过任何事情。编译器(Android Studio)没有报告错误。当我单击播放声音的按钮时,没有声音播放。请帮忙。

这是我想到的主要代码。

public class MainActivity extends AppCompatActivity {

    Button btnPlay;
    AudioAttributes audioAttributes;
    SoundPool sp;
    TextView tvNote;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnPlay = (Button) findViewById(R.id.btnPlay);
        tvNote = (TextView) findViewById(R.id.tvNote);


    }

    public void playClicked(View v) {
        audioAttributes = new AudioAttributes.Builder()
                .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
                .setUsage(AudioAttributes.USAGE_MEDIA)
                .build();
        sp = new SoundPool.Builder()
                .setMaxStreams(4)
                .setAudioAttributes(audioAttributes)
                .build();
        int soundId = sp.load(getApplicationContext(), R.raw.piano_c3, 1);
        sp.play(soundId, 1, 1, 1, 0, 1f);

        tvNote.setText("piano_c3");

    }

请让我知道我错过了什么。谢谢。

最佳答案

soundPool.play(soundID,leftVolume,rightVolume,priority,loop,rate);

这些是播放声音池所需的属性
leftVolumerightVolumepriority设置为1很好

如果1f也很合适,那就表示您想要播放声音的速度越快,数字越大,速度越快

但是您将循环保持为“0”,因此它不会播放任何声音
这是数字的不同类型的含义

0:-播放0次

1:-玩1次

-1:-循环播放无限次

尝试将其更改为适当的设置

关于android - Android SoundPool指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50428799/

相关文章:

来自触发它的同一 Activity 的 Android 句柄/覆盖/中断 Intent

android - 设置 Google Play 游戏服务

java - Android 将可点击文本设置为从一个 fragment 转到另一个 fragment

android - 如何在android中获取应用程序的最后打开日期?

iphone - Speakhere 接听电话后不会录音

ios - 为了在 iPhone 上保持一致的节奏,有没有比系统声音更好的解决方案?

html - 网页中的声音输入

.net - 将音频文件WCF发送到WP7

python - Discord 音乐机器人

java - 有没有办法用Java在Linux上以协作方式播放WAV文件?