2011-11-28 3 views
1

Я использовал уведомление, которое вызывает услугу плеера, и этот проигрыватель должен играть музыку. Но я не знаю, как играть в фоновом режиме?как играть музыку по уведомлению в андроиде?

вы можете увидеть мой код следующим образом:

1.First вызов файла игрок служба

Intent i=new Intent(this, PlayerService.class); 

i.putExtra(PlayerService.EXTRA_PLAYLIST, "main"); 
i.putExtra(PlayerService.EXTRA_SHUFFLE, true); 

startService(i); 

файл 2. Во-вторых класс для воспроизведения музыки

public class PlayerService extends Service { 
    public static final String EXTRA_PLAYLIST="EXTRA_PLAYLIST"; 
    public static final String EXTRA_SHUFFLE="EXTRA_SHUFFLE"; 
    private boolean isPlaying=false; 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     String playlist=intent.getStringExtra(EXTRA_PLAYLIST); 
     boolean useShuffle=intent.getBooleanExtra(EXTRA_SHUFFLE, false); 

     play(playlist, useShuffle);  
     return(START_NOT_STICKY); 
    } 

    @Override 
    public void onDestroy() { 
     stop(); 
    } 

    @Override 
    public IBinder onBind(Intent intent) { 
     return(null); 
    } 

    private void play(String playlist, boolean useShuffle) { 
     if (!isPlaying) { 
      Log.w(getClass().getName(), "Got to play()!"); 
      isPlaying=true; 

      Notification note=new Notification(R.drawable.stat_notify_chat, "Can you hear the music?", System.currentTimeMillis()); 
      Intent i=new Intent(this, FakePlayer.class); 
      i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP| Intent.FLAG_ACTIVITY_SINGLE_TOP); 

      PendingIntent pi=PendingIntent.getActivity(this, 0,i, 0); 

      note.setLatestEventInfo(this, "Fake Player","Now Playing: \"Ummmm, Nothing\"", pi); 
      note.flags|=Notification.FLAG_NO_CLEAR; 

      startForeground(1337, note); 
     } 
    } 
    private void stop() { 
     if (isPlaying) { 
      Log.w(getClass().getName(), "Got to stop()!"); 
      isPlaying=false; 
      stopForeground(true); 
     } 
    } 
} 

Спасибо и С уважением, Omid

+0

Пожалуйста, подумайте о том, чтобы перефразировать вопрос, неясно (по крайней мере, для меня). Что вы точно ищете? Медиаплеер, который играет на фоне вашего приложения/активности? –

+0

Я хочу сыграть длинный звук при загрузке пакета. то в уведомлении отображаются как индикатор выполнения, так и звук воспроизведения. –

ответ

1

Возможно, вы уже нашли ответ, но, возможно, это будет он lpfull кому-то другому. А именно, класс Notification имеет метод sound, для которого требуется путь к файлу, который требуется воспроизвести при возникновении уведомления. См. notification examples (более подробно «Добавление звука») для получения дополнительной информации.

Смежные вопросы