2011-12-22 18 views
0

MediaPlayerオブジェクトを使用してサウンドを再生しようとしていますが、最善の努力をしても動作させられないようです。その音は単に再生を拒否します。Android Media Player

画面がタッチされたときに再生されると思われる短い音です。何度も何度もやり直す必要があります。これを知った私は状態図、http://developer.android.com/reference/android/media/MediaPlayer.htmlに従った。私は、メソッドコールのシーケンスの正確さがどういうものか分からないようです。

MediaPlayer mp = MediaPlayer.create(this.getContext(), R.raw.select2); 
try { 
    mp.prepare(); 
    mp.start();     
    Log.e("debug","sound played"); 
    } 
catch(Exception e) {} 
mp.stop(); 
+0

の下にコールの必要性を全く示さないよう、我々はそれが自動的に準備され、あなたが持っている最初の行で.....方法を用意し、そのプロパティの一部を設定することにより、音楽プレーヤーを設定onPrepareリスナーでプレイヤーを開始する... –

+0

ありがとう!私はOnPreparedListenerクラスについて知らなかった。それは今働いている。 – rolledback

答えて

0

あなたはメディアプレーヤ上prepare()呼んでいますが、使用create()コールは、あなたが再びprepare()を呼び出すしようとすると、これはIllegalStateExceptionが発生し、自動的にプレーヤーを作成し、あなたのcatch()(あなたが気づいているだろうこれに送られ、何らかの形で例外を処理した場合、つまりスタックトレースを出力した場合)。

0
MediaPlayer player = MediaPlayer.create(this.getContext(), R.raw.select2); 


player.setWakeMode(getApplicationContext()PowerManager.PARTIAL_WAKE_LOCK); 
player.setAudioStreamType(AudioManager.STREAM_MUSIC); 
player.setOnPreparedListener(this); 
player.setOnCompletionListener(this); 
player.setOnErrorListener(this); 
try { 
    player.prepare(); 
    player.start();     
    Log.e("debug","sound played"); 
} catch(Exception e) {} 
    player.stop(); 
関連する問題