0

ゲームを開発し、SoundPool と を使用してオーディオ サウンドを再生していMediaPlayerます。オーディオ サウンドが再生されるたびに、LogCat にエラーが表示されます。

public class MusicSoundResources {

    private static final String CLASS_TAG = "SoundResources";

    private static MusicSoundResources _instance;
    public static HashMap<String, MediaPlayer> mSoundPoolMap;
    private static AudioManager  mAudioManager;
    private static Context mContext;

    public MusicSoundResources() {

    }

    public static void initSounds(Context theContext) {
         mContext = theContext;
         mSoundPoolMap = new HashMap<String, MediaPlayer>();
         mAudioManager = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE);

         loadSounds();
    }

    private static void loadSounds()    {
        mSoundPoolMap.put("swallowed", MediaPlayer.create(mContext, R.raw.swallowed));
    }

    public static void playSound(String soundTrackIndex, boolean loop) {
        MediaPlayer mediaPlayer = mSoundPoolMap.get(soundTrackIndex);
        float streamVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
        streamVolume = streamVolume / mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);

        mediaPlayer.setVolume(streamVolume, streamVolume);
        mediaPlayer.setLooping(loop);
        mediaPlayer.start();
    }
}

次の 2 つのログが表示されます。

05-31 15:02:56.400: ERROR/AudioTrack(2384): getAudioMode[0]
05-31 15:02:56.400: ERROR/AudioR2VS(2384): The 11025 sample rate is not supported by R2VS solution.

SoundPool を使用すると、同じ問題が発生します。

サポートされているサンプルレートを教えてください。

4

2 に答える 2

1

最後に、私はこれに対する答えを得ました。このエラーは、ビット レートが 11025 Hz を超えるサウンドを再生すると発生します。これは、android メディア プレーヤーの内部エラーです。

于 2011-10-03T07:39:15.020 に答える
0

play()-methodの最後のパラメーターは、floatではなく、intです。

public final int play(int soundID、float leftVolume、float rightVolume、int priority、int loop、float rate

これは機能するはずです:

mSoundPool.play(mSoundPoolMap.get("fire"), streamVolume, streamVolume, 1, 0, 1.0);
于 2011-05-31T11:57:08.450 に答える