gpt4 book ai didi

Android,在soundpool中播放声音

转载 作者:行者123 更新时间:2023-11-29 14:25:33 24 4
gpt4 key购买 nike

我下载了一些代码,而不是在我的本地类中播放我的声音调用另一个类来播放声音,我遇到的唯一问题是它不允许我在我的手机上使用我的音量键来调节音量我本地类(class)中的旧代码允许我这样做。

在过去,本地类有这样的代码:

    AudioManager mgr = (AudioManager) GameScreen_bugfix.this.getSystemService(Context.AUDIO_SERVICE);
float streamVolumeCurrent = mgr.getStreamVolume(AudioManager.STREAM_MUSIC);
float streamVolumeMax = mgr.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
float volume = streamVolumeCurrent / streamVolumeMax;
soundPool.play(soundPoolMap.get(sound), volume, volume, 1, 0,1f);

新代码如下所示:

public static void playSound(int index,float speed) 
{
float streamVolume;
try {
streamVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
streamVolume = streamVolume / mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
mSoundPool.play(mSoundPoolMap.get(index), streamVolume, streamVolume, 1, 0, speed);
} catch (Exception e) {
e.printStackTrace();
//Log.v("THE ERROR", mSoundPoolMap+" "+index);
}


}

所以我试着改成这样:

        AudioManager mgr = (AudioManager) SoundManager.getSystemService(Context.AUDIO_SERVICE);
float streamVolumeCurrent = mgr
.getStreamVolume(AudioManager.STREAM_MUSIC);
float streamVolumeMax = mgr
.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
float volume = streamVolumeCurrent / streamVolumeMax;

但是这个 getSystemService 以红色突出显示,当我将鼠标悬停在它上面时它说:

The method getSystemService(String) is undefined for the type SoundManager

要做什么?谢谢!

最佳答案

如果您想以系统定义的音量播放声音,请更改:

mSoundPool.play(mSoundPoolMap.get(index), streamVolume, streamVolume, 1, 0, speed);

为此:

mSoundPool.play(mSoundPoolMap.get(index), 1, 1, 1, 0, speed);

您传递给 play 的音量级别介于 0 和 1 之间。它表示播放声音时系统音量的百分比。因此,0.5 的值将以系统音量级别的 50% 播放。

关于Android,在soundpool中播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7636897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com