2015-04-21 3 views
0

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

Вот что у меня есть. Попытка его с m3u, потому что я честно понятия не имею, что еще использовать для этого.

Button buttonPlay; 
Button buttonStop; 
MediaPlayer mPlayer; 
String url = "http://www.*******.com/*****/files.m3u"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    buttonPlay = (Button) findViewById(R.id.play); 
    buttonPlay.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) {     
      mPlayer = new MediaPlayer(); 
      mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
      try { 
       mPlayer.setDataSource(url); 
      } catch (IllegalArgumentException e) { 
       Toast.makeText(getApplicationContext(), "You might not set the URI correctly! Illegal Argument", Toast.LENGTH_LONG).show(); 
      } catch (SecurityException e) { 
       Toast.makeText(getApplicationContext(), "You might not set the URI correctly! Security ", Toast.LENGTH_LONG).show(); 
      } catch (IllegalStateException e) { 
       Toast.makeText(getApplicationContext(), "You might not set the URI correctly! Illegal Statement", Toast.LENGTH_LONG).show(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      try { 
       mPlayer.prepare(); 
      } catch (IllegalStateException e) { 
       Toast.makeText(getApplicationContext(), "You might not set the URI correctly! Prepare Illegal State", Toast.LENGTH_LONG).show(); 
      } catch (IOException e) { 
       Toast.makeText(getApplicationContext(), "You might not set the URI correctly! Prepare IO", Toast.LENGTH_LONG).show(); 
      } 
      mPlayer.start(); 
     } 
    }); 
    buttonStop = (Button) findViewById(R.id.stop); 
    buttonStop.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      if(mPlayer!=null && mPlayer.isPlaying()){ 
       mPlayer.stop(); 
      } 
     } 
    }); 

Имейте в виду, что это проблема с IOexception после подготовки. Теперь я где-то читал, что вы загружаете файлы m3u, а затем читаете их по строкам. Если это так, есть ли лучший способ? Я пытаюсь сделать приложение для радио в целях тестирования, которое будет воспроизводить песни наугад, а не в порядке, поэтому я не хочу жестко кодировать их MP3-файлы,

ответ

0

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

Button buttonPlay; 
Button buttonStop; 
MediaPlayer mPlayer; 
String url = "http://www.*******.com/*****/files.m3u"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 

buttonPlay = (Button) findViewById(R.id.play); 
buttonPlay.setOnClickListener(new OnClickListener() { 

    public void onClick(View v) {     
     mPlayer = new MediaPlayer(); 
     mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
     try { 
      mPlayer.setDataSource(url); 
     } catch (IllegalArgumentException e) { 
      Toast.makeText(getApplicationContext(), "You might not set the URI correctly! Illegal Argument", Toast.LENGTH_LONG).show(); 
     } catch (SecurityException e) { 
      Toast.makeText(getApplicationContext(), "You might not set the URI correctly! Security ", Toast.LENGTH_LONG).show(); 
     } catch (IllegalStateException e) { 
      Toast.makeText(getApplicationContext(), "You might not set the URI correctly! Illegal Statement", Toast.LENGTH_LONG).show(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     try { 
       mPlayer.prepareAsync(); 
       mPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
      @Override 
      public void onPrepared(MediaPlayer mp) { 
       mPlayer.start(); 
      } 
     };); 
     } catch (IllegalStateException e) { 
      Toast.makeText(getApplicationContext(), "You might not set the URI correctly! Prepare Illegal State", Toast.LENGTH_LONG).show(); 
     } catch (IOException e) { 
      Toast.makeText(getApplicationContext(), "You might not set the URI correctly! Prepare IO", Toast.LENGTH_LONG).show(); 
     } 
    } 
}); 
buttonStop = (Button) findViewById(R.id.stop); 
buttonStop.setOnClickListener(new OnClickListener() { 

    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     if(mPlayer!=null && mPlayer.isPlaying()){ 
      mPlayer.stop(); 
     } 
    } 
}); 
+0

Я не уверен, как это реализовать. Я никогда раньше не встречался с mediaPlayer. – jham

+0

@jham Я обновил свой пример –

+0

Я все еще не могу заставить его работать. Он не воспроизводит тестовый звук, который я помещал в файл m3u. – jham

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

  • Нет связанных вопросов^_^