如何设置 exoplayer 以播放 mp4 和 m3u8 取决于 url 结局
how to setup exoplayer to play both mp4 and m3u8 depends on url ending
你们能告诉我如何在 exoplayer android studio 中使用单个播放按钮播放 m3u8 和 mp4 视频吗?
我的应用程序 运行 使用 JSON 改造我的 URL 来自哪里。它连接到回收器适配器和阵列,并通过我调用 URL 或 URI 播放文件的意图进入意图。
我可以使用 m3u8 代码或 mp4 代码,但我不知道如何在按钮内的一个 java 文件中实现两者
我正在使用的 m3u8 :
LoadControl LoadControls = new DefaultLoadControl();
BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
ExoTrackSelection.Factory videoTrackSelectionFactory = new
AdaptiveTrackSelection.Factory();
trackSelector = new
DefaultTrackSelector(VideoPortrait.this, videoTrackSelectionFactory);
DefaultRenderersFactory renderersFactory = new DefaultRenderersFactory(this);
renderersFactory.setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER);
simpleExoPlayer = new SimpleExoPlayer.Builder(this, renderersFactory)
.setTrackSelector(trackSelector)
.build();
videoPlayer.setPlayer(simpleExoPlayer);
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this, Util.getUserAgent(this, "ChristianGospelApp"));
MediaSource mediaSource = new ProgressiveMediaSource.Factory(dataSourceFactory).createMediaSource(MediaItem.fromUri(Uri.parse(mp4Url)));
simpleExoPlayer.prepare(mediaSource);
simpleExoPlayer.setPlayWhenReady(true);
我正在使用的 mp4(在另一个 activity 我试过它作为预告片 activity)
private void setUpExoplayer(String mp4Url) {
LoadControl LoadControls = new DefaultLoadControl();
BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
ExoTrackSelection.Factory videoTrackSelectionFactory = new
AdaptiveTrackSelection.Factory();
trackSelector = new
DefaultTrackSelector(VideoPlayerActivity.this, videoTrackSelectionFactory);
DefaultRenderersFactory renderersFactory = new DefaultRenderersFactory(this);
renderersFactory.setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER);
simpleExoPlayer = new SimpleExoPlayer.Builder(this, renderersFactory)
.setTrackSelector(trackSelector)
.build();
videoPlayer.setPlayer(simpleExoPlayer);
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this, Util.getUserAgent(this, "ChristianGospelApp"));
MediaSource mediaSource = new ProgressiveMediaSource.Factory(dataSourceFactory).createMediaSource(MediaItem.fromUri(Uri.parse(mp4Url)));
simpleExoPlayer.prepare(mediaSource);
simpleExoPlayer.setPlayWhenReady(true);
}
创建媒体项时只需将 mime 类型设置为 M3U8 或 MP4。像这样,
创建 mp4 媒体时,
val mediaItem = MediaItem.Builder()
.setUri(Uri.parse(intent.getStringExtra("videoUri")))
.setMimeType(MimeTypes.APPLICATION_MP4)
.build()
在 M3U8 视频的 setMimeType 方法中将 mime 类型更改为 Application_M3U8。
你们能告诉我如何在 exoplayer android studio 中使用单个播放按钮播放 m3u8 和 mp4 视频吗? 我的应用程序 运行 使用 JSON 改造我的 URL 来自哪里。它连接到回收器适配器和阵列,并通过我调用 URL 或 URI 播放文件的意图进入意图。
我可以使用 m3u8 代码或 mp4 代码,但我不知道如何在按钮内的一个 java 文件中实现两者
我正在使用的 m3u8 :
LoadControl LoadControls = new DefaultLoadControl();
BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
ExoTrackSelection.Factory videoTrackSelectionFactory = new
AdaptiveTrackSelection.Factory();
trackSelector = new
DefaultTrackSelector(VideoPortrait.this, videoTrackSelectionFactory);
DefaultRenderersFactory renderersFactory = new DefaultRenderersFactory(this);
renderersFactory.setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER);
simpleExoPlayer = new SimpleExoPlayer.Builder(this, renderersFactory)
.setTrackSelector(trackSelector)
.build();
videoPlayer.setPlayer(simpleExoPlayer);
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this, Util.getUserAgent(this, "ChristianGospelApp"));
MediaSource mediaSource = new ProgressiveMediaSource.Factory(dataSourceFactory).createMediaSource(MediaItem.fromUri(Uri.parse(mp4Url)));
simpleExoPlayer.prepare(mediaSource);
simpleExoPlayer.setPlayWhenReady(true);
我正在使用的 mp4(在另一个 activity 我试过它作为预告片 activity)
private void setUpExoplayer(String mp4Url) {
LoadControl LoadControls = new DefaultLoadControl();
BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
ExoTrackSelection.Factory videoTrackSelectionFactory = new
AdaptiveTrackSelection.Factory();
trackSelector = new
DefaultTrackSelector(VideoPlayerActivity.this, videoTrackSelectionFactory);
DefaultRenderersFactory renderersFactory = new DefaultRenderersFactory(this);
renderersFactory.setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER);
simpleExoPlayer = new SimpleExoPlayer.Builder(this, renderersFactory)
.setTrackSelector(trackSelector)
.build();
videoPlayer.setPlayer(simpleExoPlayer);
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this, Util.getUserAgent(this, "ChristianGospelApp"));
MediaSource mediaSource = new ProgressiveMediaSource.Factory(dataSourceFactory).createMediaSource(MediaItem.fromUri(Uri.parse(mp4Url)));
simpleExoPlayer.prepare(mediaSource);
simpleExoPlayer.setPlayWhenReady(true);
}
创建媒体项时只需将 mime 类型设置为 M3U8 或 MP4。像这样,
创建 mp4 媒体时,
val mediaItem = MediaItem.Builder()
.setUri(Uri.parse(intent.getStringExtra("videoUri")))
.setMimeType(MimeTypes.APPLICATION_MP4)
.build()
在 M3U8 视频的 setMimeType 方法中将 mime 类型更改为 Application_M3U8。