2011-05-31 3 views
0

SoundPoolとMediaPlayerを使用してゲームを開発し、オーディオサウンドを再生しています。音声が再生されるたびに、LogCatにエラーが表示されます。私はSoundPoolを使用する場合、同じ問題が発生したgetAudioMode [0]エラー

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. 

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つのログです。

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

+0

コードの一部を表示します。 –

+0

@Lukas Knuth:So​​undPool mSoundPool =新しいSoundPool(50、AudioManager.STREAM_MUSIC、0); HashMap mSoundPoolMap =新しいHashMap (); mSoundPoolMap.put( "fire"、mSoundPool.load(mContext、R.raw.fire、1)); mSoundPool.play(mSoundPoolMap.get( "fire")、streamVolume、streamVolume、1、0、1); – Nuraiz

+0

あなたの投稿を編集したはずです...私はあなたのためにそれをしました。 –

答えて

1

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

0

ターplay() -methodの最後のパラメータがfloat、ないint次のとおりです。

公共最終int型の遊び(rightVolume、 int型の優先順位、int型のループ、フロートフロート、soundID、 フロートleftVolumeをint型率

これは動作するはずです:

mSoundPool.play(mSoundPoolMap.get("fire"), streamVolume, streamVolume, 1, 0, 1.0); 
+0

しかし、このエラーはまだ来ています:05-31 17:02:09.091:ERROR/AudioTrack(20897):getAudioMode [0] – Nuraiz

+0

あなたのコードに 'getAudioMode'-Arrayはありません。あなたの投稿を編集してください。 –

+0

@ Lukas Knuth:私は自分の投稿を編集しました。これは、私がオーディオサウンドを再生するために使用している完全なクラスです。私はgetAudioModeを使用していません。これは、オーディオサウンドが再生されるときにlogcatに入ります。あなたが今問題を抱くことを望みます。 – Nuraiz

関連する問題