2013-07-06 29 views
0

我使用闹钟管理器停止所有音乐在android中播放。但我不知道这是如何做到的。 在主要活动的源代码关闭android中的所有服务播放音乐

Intent intent = new Intent(AlarmActivity.this, OneShotAlarm.class); 
     PendingIntent sender = PendingIntent.getBroadcast(AlarmActivity.this, 
       0, intent, 0); 

     Calendar calendar = Calendar.getInstance(); 
     calendar.setTimeInMillis(System.currentTimeMillis()); 
     calendar.add(Calendar.SECOND, 5); 

     // Schedule the alarm! 
     AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); 
     am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender); 

和报警扩展广播接收器

public class OneShotAlarm extends BroadcastReceiver 

{

@Override 
public void onReceive(Context context, Intent intent) 
{ 
// What can I do for stop music of device is running 
    Toast.makeText(context, R.string.one_shot_received, Toast.LENGTH_SHORT).show(); 
} 

}

回答

0

你可以看看:AudioManager

像这样的东西应该工作:

AudioManager aManager = (AudioManager)getSystemService(AUDIO_SERVICE); 
aManager.setStreamMute(AudioManager.STREAM_MUSIC, true); 

编辑: 有一个功能,采取 “音频焦点访谈”:AudioManager

public int requestAudioFocus (AudioManager.OnAudioFocusChangeListener l, int streamType, int durationHint) 

Sample

AudioManager am = mContext.getSystemService(Context.AUDIO_SERVICE); 
... 

// Request audio focus for playback 
int result = am.requestAudioFocus(afChangeListener, 
           // Use the music stream. 
           AudioManager.STREAM_MUSIC, 
           // Request permanent focus. 
           AudioManager.AUDIOFOCUS_GAIN); 

if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) { 
    am.unregisterMediaButtonEventReceiver(RemoteControlReceiver); 
    // Start playback. 
} 
+0

我可以AudioManager做,但音量关闭,音乐仍在运行(没有声音)。如何停止服务播放音乐? –

+0

我可以通过audioManager设置音量静音。但我想关闭媒体播放器在Android中运行音乐。 :( –