2012-06-12 3 views
0

Каков наилучший способ воспроизведения локального хранилища .mp3 в папке загрузки по умолчанию на SD-карте с помощью MediaPlayer из службы?Воспроизведение локального mp3 в службе MediaPlayer, Android

Файл воспроизводится прямо сейчас, но когда я пытаюсь вызвать функцию .pause(), ничего не происходит.

public class PlayService extends Service{ 

@Override 
public int onStartCommand(Intent intent, int flags, int startId){ 

    int key = intent.getIntExtra("key", 0); 
    MediaPlayer mMediaPlayer = new MediaPlayer(); 

    FileInputStream fileStream = null; 
    try { 
     fileStream = new FileInputStream("/sdcard/Download/Bob_Marley-Jammin.mp3"); 
    } catch (FileNotFoundException e1) { 
     e1.printStackTrace(); 
    } 

    try { 
     mMediaPlayer.setDataSource(fileStream.getFD()); 
    } catch (IllegalArgumentException e) { 
     e.printStackTrace(); 
    } catch (IllegalStateException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    try { 
     mMediaPlayer.prepare(); 
    } catch (IllegalStateException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    switch (key) { 
    case 0: //Play 
     if (mMediaPlayer.isPlaying()){ 
      break; 
     } 
     else 
      mMediaPlayer.start(); 
     break; 
    case 1: //Pause 
     if(mMediaPlayer.isPlaying()) 
      mMediaPlayer.pause(); 
     break; 
    case 2: //Stop 
     if(mMediaPlayer.isPlaying()){ 
      mMediaPlayer.pause(); 
      mMediaPlayer.seekTo(0); 
     } 
     break; 
    default: 
     break; 

ответ

1
FileInputStream fileStream = new FileInputStream("/sdcard/Download/Bob_Marley-Jammin.mp3"); 
mMediaPlayer.setDataSource(fileStream.getFD()); 
+0

О, черт да. You da best –

+0

Я отредактировал его, чтобы он соответствовал вашему ответу. –

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