我需要在 2.x 及更高版本的设备上播放直播。这表明不可能在装有 Android 2.x 的设备上播放直播流。
我在这里有什么选择?特别是我对流式音频感兴趣——我应该选择什么格式以及与哪个协议结合使用?
PS 我试过 Vitamio - 不想让客户下载第三方库。
UPD
- 我怎么能播放这个流“ http://188.138.112.71:9018/ ”?
我需要在 2.x 及更高版本的设备上播放直播。这表明不可能在装有 Android 2.x 的设备上播放直播流。
我在这里有什么选择?特别是我对流式音频感兴趣——我应该选择什么格式以及与哪个协议结合使用?
PS 我试过 Vitamio - 不想让客户下载第三方库。
UPD
试试这个 RTSP 流的例子(url 应该支持 RTSP)视频更改代码以仅支持音频
public class MultimediaActivity extends Activity {
private static final String RTSP = "rtsp://url here";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.multimedia);
//***VideoView to video element inside Multimedia.xml file
VideoView videoView = (VideoView) findViewById(R.id.video);
Log.v("Video", "***Video to Play:: " + RTSP);
MediaController mc = new MediaController(this);
mc.setAnchorView(videoView);
Uri video = Uri.parse(RTSP);
videoView.setMediaController(mc);
videoView.setVideoURI(video);
videoView.start();
}
}
编辑:
在 Android 中使用 MediaPlayer 进行实时音频流式传输 android 中的实时音频流式传输,从 1.6 sdk 开始变得如此简单。在 setDataSource() API 中直接传递 url,音频将毫无问题地播放。
完整的代码片段是,
public class AudioStream extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String url = "http://www.songblasts.com/songs/hindi/t/three-idiots/01-Aal_Izz_Well-(SongsBlasts.Com).mp3";
MediaPlayer mp = new MediaPlayer();
try {
mp.setDataSource(url);
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.prepare();
mp.start();
} catch (Exception e) {
Log.i("Exception", "Exception in streaming mediaplayer e = " + e);
}
}
}
您可以使用 Android 原生媒体播放器支持的 RTSP 协议。
player = new MediaPlayer();
player.reset();
player.setDataSource(intent.getStringExtra("Path"));
player.prepare();
player.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
player.start();
}
});
路径将是您的 rtsp 音频流 url。