2011-08-23 9 views
2

저는 Android 개발에 익숙하지 않아서 방송 수신기에서 SoundPool 사운드를 재생하는 방법을 알고 싶습니다.Android 프로그래밍 - 브로드 캐스트 수신기에서 SoundPool 사운드를 재생하는 방법

어딘가에서 SoundPool을 사용하면 사운드를 재생하는 방법이 있지만 제대로 설정하는 방법을 모르겠습니다.

내 Eclipse res \ raw 폴더에 wave 및 mp3 파일과 같은 일부 사운드 파일이 있습니다. half.wav라는 파일을 재생하고 싶습니다.

내 브로드 캐스트 수신기에 배치해야하는 예제 코드를 보여줄 수 있습니까?

여기 코드에서 첫 번째 시도가 있지만 soundID = soundPool.load (this, R.raw.half, 1);이라는 오류가 표시됩니다.

여기

는 "방법로드 (문맥, INT, INT) 유형 SoundPool에서이 ... 적용 할 수 없다"클래스에 대한 코드입니다 : 사전에

package ChimeMe.BigBen; 

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.widget.Toast; 
import android.os.Bundle; 

import android.media.AudioManager; 
import android.media.SoundPool; 
import android.media.SoundPool.OnLoadCompleteListener; 

public class AlarmReceiver extends BroadcastReceiver { 

private SoundPool soundPool; 
private int soundID; 
boolean loaded = false; 

@Override 
public void onReceive(Context context, Intent intent) { 

    try { 

     // Load the sound 
     soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0); 
     soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() { 
      @Override 
      public void onLoadComplete(SoundPool soundPool, int sampleId, 
        int status) { 
       loaded = true; 
      } 
     }); 

     soundID = soundPool.load(this, R.raw.half, 1); 

     Toast.makeText(context, "This is the alarm.", Toast.LENGTH_SHORT) 
       .show(); 

    } catch (Exception e) { 
     Toast.makeText(
       context, 
       "There was an error somewhere, but we still received an alarm", 
       Toast.LENGTH_SHORT).show(); 
     e.printStackTrace(); 

    } 
} 

} 

감사합니다. 정말

, 에마

답변

4

그것은

이 재생 내 응용 프로그램의 코드입니다 ... 당신은 내가 MediaPlayer를 빠르고 쉽게 될 것이다 사용하여 생각 재생하려는 한 소리 인 경우 브로드 캐스트 수신자가 실행될 때마다 30 분 간격으로 경고음이 울림

public class Gameloop extends BroadcastReceiver { 
    MediaPlayer mp = null;// Here 
    private static final String TAG = "VPET"; 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     Log.d(TAG, "Loop running"); 
     if (Pet.isAlive == true) { 

      mp = MediaPlayer.create(context, R.raw.beep);//Onreceive gives you context 
      mp.start();// and this to play it 

     } else { 

     } 
    } 


} 

} 
+0

코딩 샘플에 대해 Pheonix2105에 감사드립니다. :-) –

관련 문제