Служба не получает намерения - PullRequest
0 голосов
/ 26 ноября 2011

Чтобы воспроизвести аудиофайл с SD-карты, я передаю файл с именем path в службу, чтобы запустить путь воспроизведения медиаплеера.

Это проходит мимо

private void playAudio(String url) throws Exception{
     Intent music = new Intent(this,MusicService.class);
     music.putExtra("paths", url);
     startService(music);   
}

Это мой класс обслуживания, получающий намерение.

class MusicService extends Service implements OnCompletionListener {
 MediaPlayer mediaPlayer;
 String musicFile;


  @Override
  public void onCreate() {
     mediaPlayer = new MediaPlayer();
     mediaPlayer.setOnCompletionListener(this);
  }

  @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
       Bundle e = intent.getExtras();
       musicFile= e.getString("paths"); 
      try {
         mediaPlayer.prepare(); 
         mediaPlayer.setDataSource(musicFile);
       } catch (IllegalArgumentException i) {
         // TODO Auto-generated catch block
          i.printStackTrace();
       } catch (IllegalStateException i) {
            // TODO Auto-generated catch block
            i.printStackTrace();
        } catch (IOException i) {
            // TODO Auto-generated catch block
            i.printStackTrace();
        }
      if (!mediaPlayer.isPlaying()) 
      {             
        mediaPlayer.start();             
      } 
      return START_STICKY; 
}

Моя проблема в том, что медиаплеер не воспроизводит путь. Я не уверен, что он не получает файл с SD или по какой-то причине не запускается.

1 Ответ

0 голосов
/ 26 ноября 2011

Чтобы помочь вам в отладке, добавьте несколько тостов здесь и там в вашем сервисе:

Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_SHORT).show();

Если поместить его стратегически, это поможет вам убедиться, что сервис запущен правильно, если сервис запускает свои методы,и т.д. Определение ошибок даже важнее, чем их исправление.

...