【问题标题】:Android SoundPool guideAndroid SoundPool 指南
【发布时间】:2018-05-19 19:34:29
【问题描述】:

我刚刚偶然发现“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");

    }

请告诉我我错过了什么。谢谢。

【问题讨论】:

    标签: android audio playback soundpool


    【解决方案1】:
    soundPool.play(soundID,leftVolume,rightVolume,priority,loop,rate);
    

    这些是播放 soundpool 所需的属性

    leftVolume,rightVolume,priority 设置为1 很好

    如果 1f 也不错,也可以打分,这意味着你想要播放声音的速度,数字越大速度越快

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

    0:- 播放0次

    1:- 玩 1 次

    -1:- 循环播放无限次

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

    【讨论】:

    • 这里的“播放1次”和“循环播放无限次”有什么区别?
    • @rm-rfstar 很抱歉它应该是“-1”。我已经编辑了它
    • 没关系 :) 感谢更新!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多