2011-01-13 4 views
0

다음 코드가 있습니다. HelloAndroid2.java에서 알람을 설정하고 2 초 후 AlarmReceiver.java가 나에게 Toast 메시지를 보여줍니다. 앱에 오디오를 추가하고 싶었지만 몇 가지 문제가 있습니다.Android MediaPlayer 질문

HelloAndroid2.java :

public class HelloAndroid2 extends Activity { 


@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 

Intent intent = new Intent(this, AlarmReceiver.class); 

PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, 
intent, PendingIntent.FLAG_ONE_SHOT); 

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (2 * 1000), pendingIntent); 
Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show(); 


} 

} 

AlarmReceiver.java :

public final class AlarmReceiver extends BroadcastReceiver { 
@Override 
public void onReceive(Context context, Intent intent) { 
    Toast.makeText(context, "Alarm worked.", Toast.LENGTH_LONG).show(); 

} 
} 

Q1 : 나는 HelloAndroid2.java에이 코드를 넣을 경우 :

MediaPlayer mp = MediaPlayer.create(getBaseContext(), R.raw.onlyyou); 
`mp.start();` 

그것은 잘 작동합니다.

어떻게 AlarmReceiver.java에 mp.stop()을 추가 할 수 있습니까? 그것은 mp가 무엇인지 알지 못합니다.

Q2 : 내가 AlarmReceiver.java 파일에 코드를 넣어 경우, getBaseContext에 문제가() (말한다 : 유형 AlarmReceiver에 대한 정의되지 않은)

내가 다른 컨텍스트를 사용해야합니까?

나는 하나의 주제로 질문을 제기했으면 좋겠다.

답변

0

이렇게 잘못하고 있습니다. 방송 수신기에서 시도하는 것과 같은 일을하면 안됩니다. 오디오를 시작하고 중지하려면 서비스에서해야합니다. 방송 수신기에서 미디어 플레이어로 무엇을해야하는지 알기 위해 서비스에 정보를 보내야합니다.

+0

감사합니다. AlarmReceiver.java에서 코드를 넣습니다. context.startService (new Intent (context, MyService.class)); 그리고 여기에서 찾은 코드에 대한 MyService.java를 만들었습니다. http://developer.android.com/reference/android/app/Service.html – erdomester

관련 문제