在Android MediaPlayer2中,如果使用HTTP协议来播放媒体流,会导致HTTP头部信息被丢弃掉,导致一些应用程序无法使用。可以使用OkHttp作为HTTP传输层,这样就可以在请求播放媒体流时将HTTP头部信息添加到请求中。以下是示例代码:
// 创建 OkHttpClient
OkHttpClient client = new OkHttpClient.Builder().build();
// 创建工厂,用于将OkHttpClient设置为DataSource.Factory
OkHttpDataSourceFactory dataSourceFactory = new OkHttpDataSourceFactory(client);
// 创建播放媒体的Uri
Uri uri = Uri.parse("http://example.com/media.mp4");
// 创建播放器
SimpleExoPlayer player = new SimpleExoPlayer.Builder(context).build();
// 准备播放器
MediaItem mediaItem = new MediaItem.Builder().setUri(uri).build();
player.setMediaItem(mediaItem);
player.prepare();
// 开始播放
player.play();
在上面的代码中,使用OkHttpClient来创建OkHttpDataSourceFactory,然后将其传递给SimpleExoPlayer构造函数中的DataSource.Factory。这将确保HTTP头部信息被包含在请求中,从而避免被丢弃的问题。
上一篇:AndroidMediaPlayer.getCurrentPosition()返回0的问题。
下一篇:AndroidMediaPlayer的addTimedTextSource方法仅在字幕'开始”时通知,而不在字幕'结束”时通知。