Java Url中的Mp4文件播放时间过长
我有一个MP4URL,其中包含400mb的视频。 使用exoplayer,开始播放视频的时间太长(10-15分钟)。 我添加了loadcontrol,但没有任何用处。有人能帮我吗Java Url中的Mp4文件播放时间过长,java,android,Java,Android,我有一个MP4URL,其中包含400mb的视频。 使用exoplayer,开始播放视频的时间太长(10-15分钟)。 我添加了loadcontrol,但没有任何用处。有人能帮我吗 MediaSource videoSource = new ExtractorMediaSource.Factory(dataSourceFactory) .createMediaSource(mUri); // Prepare the player with the sour
MediaSource videoSource = new
ExtractorMediaSource.Factory(dataSourceFactory)
.createMediaSource(mUri);
// Prepare the player with the source.
Log.d("exo","to be prepare");
player.prepare(videoSource);
Log.d("exo","prepared"+videoSource);
player.setPlayWhenReady(true);
Log.d("exo","played");
player.addListener(this);
============================
LoadControl LoadControl=新的DefaultLoadControl(
新的DefaultAllocator(true,16),
VideoPlayerConfig.MIN\u缓冲区\u持续时间,
VideoPlayerConfig.MAX\u BUFFER\u DURATION,
VideoPlayerConfig.MIN\u播放\u开始\u缓冲区,
VideoPlayerConfig.MIN\u播放\u恢复\u缓冲区,-1,真)
这可能有多种原因: 1。最大缓冲区持续时间太长 尝试为
VideoPlayerConfig.MAX\u BUFFER\u DURATION
设置一个较低的值(即30秒
)
2。您的流媒体视频协议效率低下
这可能与视频编码以及网络速度限制有关。我猜视频播放器在播放之前正在加载整个视频,或者至少是一大块视频)。这就是为什么像“HTTP Live Stream”这样的协议解决了这个问题,并导致视频几乎立即播放,因为该协议发送视频块,并动态调整带宽
3。您的internet连接相对较慢
虽然这可能不是主要原因,但可能会影响结果。这可能有多种原因: 1。最大缓冲区持续时间太长 尝试为
VideoPlayerConfig.MAX\u BUFFER\u DURATION
设置一个较低的值(即30秒
)
2。您的流媒体视频协议效率低下
这可能与视频编码以及网络速度限制有关。我猜视频播放器在播放之前正在加载整个视频,或者至少是一大块视频)。这就是为什么像“HTTP Live Stream”这样的协议解决了这个问题,并导致视频几乎立即播放,因为该协议发送视频块,并动态调整带宽
3。您的internet连接相对较慢
虽然这可能不是主要原因,但它可能会影响结果。我已经实现了CDN,它工作正常我已经实现了CDN,它工作正常您可以添加一些您正在做的代码片段吗?@vs97请检查代码。如果url中有100-200MB的视频,则此代码工作正常。是否可以添加一些您正在执行的操作的代码片段?@vs97请检查代码。如果url中有100-200Mb的视频,则此代码工作正常@Ken 1。我在代码中配置了
VideoPlayerConfig.MAX\u BUFFER\u DURATION
。即final int MAX_BUFFER_DURATION=5000代码>2。我会试试HLS播放器。但我认为它也需要修改url。我有MP4URL。3.我检查了这个场景。但在电话里上网要好得多。在其他应用程序中,如netflix和prime,它正在发挥作用。我不相信改用HLS播放器会解决您的协议问题。我在Android和iOS上看到了带有ExoPlayer的即时视频。它是承载MP4视频的服务器,可能需要提供适当的流媒体协议。解决方案是实现CDN。它可以提供一个url来播放视频编码。感谢谢谢你的回复@ken1。我在代码中配置了VideoPlayerConfig.MAX\u BUFFER\u DURATION
。即final int MAX_BUFFER_DURATION=5000代码>2。我会试试HLS播放器。但我认为它也需要修改url。我有MP4URL。3.我检查了这个场景。但在电话里上网要好得多。在其他应用程序中,如netflix和prime,它正在发挥作用。我不相信改用HLS播放器会解决您的协议问题。我在Android和iOS上看到了带有ExoPlayer的即时视频。它是承载MP4视频的服务器,可能需要提供适当的流媒体协议。解决方案是实现CDN。它可以提供一个url来播放视频编码。感谢
BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
TrackSelection.Factory videoTrackSelectionFactory =
new AdaptiveTrackSelection.Factory(bandwidthMeter);
TrackSelector trackSelector =
new DefaultTrackSelector(videoTrackSelectionFactory);
// 2. Create the player
player = ExoPlayerFactory.newSimpleInstance(new DefaultRenderersFactory(this), trackSelector, loadControl);
videoFullScreenPlayer.setPlayer(player);