我正在研究android應用程序,我在其中播放在線廣播流。 我已經通過媒體播放器課程,但我不認爲有任何方法可以在線播放電臺。如果有人知道這件事,請幫助我。如何在android中播放在線廣播
謝謝。 維克拉姆
我正在研究android應用程序,我在其中播放在線廣播流。 我已經通過媒體播放器課程,但我不認爲有任何方法可以在線播放電臺。如果有人知道這件事,請幫助我。如何在android中播放在線廣播
謝謝。 維克拉姆
Vikram,
你應該能夠使用MediaPlayer來實現這一點;然而,取決於你的格式,它可能很難。例如,如果您嘗試播放使用.pls或.m3u的在線廣播流,則必須解析該文件,然後提取要使用的真實網址。
除此之外,您應該可以使用MediaPlayer的創建方法和URL來開始流式播放。請記住,如果流網址重定向(它可能會這樣做),您可能需要解析URL。一個簡單的方法是使用HttpURLConnection打開一個連接,然後connect(),然後getURL()。你可能需要一個字符串url,所以從getURL()的結果調用toExternalForm()。
此外,如果事情不適合MediaPlayer通過URL工作,則可能需要使用自己的緩衝機制來從服務器獲取數據。既然如此,你可以嘗試這個教程:http://blog.pocketjourney.com/2008/04/04/tutorial-custom-media-streaming-for-androids-mediaplayer/
從我讀過的,你應該能夠做到:
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(streamingURL);
mediaPlayer.prepare();
mediaPlayer.start();
得到基本的功能,我相信,但我沒有測試它自己。
在android中播放無線電頻道的最簡單方法是使用內置的MediaPlayer,但是當數據源來自web時,prepare()方法需要很長時間執行,你應該使用prepareAsync()來代替以避免阻塞ui:
player = new MediaPlayer();
player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
player.start();
}
}
});
try {
player.setDataSource(currentChannelUrl);
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
} catch (IOException e) {
Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
e.printStackTrace();
return;
}
player.prepareAsync();
你能詳細說明嗎?請帶一些代碼? – iTurki 2011-07-31 05:49:31