CarGuo / GSYVideoPlayer

视频播放器(IJKplayer、ExoPlayer、MediaPlayer),HTTPS,16k page size,支持弹幕,外挂字幕,支持滤镜、水印、gif截图,片头广告、中间广告,多个同时播放,支持基本的拖动,声音、亮度调节,支持边播边缓存,支持视频自带rotation的旋转(90,270之类),重力旋转与手动旋转的同步支持,支持列表播放 ,列表全屏动画,视频加载速度,列表小窗口支持拖动,动画效果,调整比例,多分辨率切换,支持切换播放器,进度条小窗口预览,列表切换详情页面无缝播放,rtsp、concat、mpeg。
https://juejin.cn/user/817692379985752/posts
Apache License 2.0
20.1k stars 4.18k forks source link

加载视频一直处于加载状态 #1329

Closed hy20160705 closed 6 years ago

hy20160705 commented 6 years ago

(请务必按照issue模板,修改后提交问题)

(ps 首页问题集锦和demo请先了解一下!)

问题描述:

在你提供的demo中播放我的视频流没有问题 但是我引入到我的项目中后 同样的视频流会出现加载失败的情况(频率很高)

问题机型/系统:

vivo X9 plus

Demo中的复现步骤

我是通过demo中这个页面来加载视频的“DetailExoListPlayer” 一层不变引入到我的项目中 PS:因为我的视频流除了.hd格式的流之外 还有.m3u8的格式 所以全部采用了这个来加载 build依赖: compile ('com.shuyu:gsyVideoPlayer-java:5.0.1'){ exclude module: 'support-v7' exclude group: 'com.android.support' } compile 'com.shuyu:gsyVideoPlayer-ex_so:5.0.1'

问题代码:(如果有) 日志:PS :有时候这个这个错误日志不会出来 但是视频一直处于加载状态 08-01 14:48:23.957 26283-26541/com.hzfree.zhlng I/ExoPlayerImpl: Release 8a35a25 [ExoPlayerLib/2.8.2] [PD1635, vivo X9s Plus, vivo, 25] [goog.exo.core, goog.exo.rtmp] 08-01 14:48:24.003 26283-26541/com.hzfree.zhlng I/ExoPlayerImpl: Init 51fd4e1 [ExoPlayerLib/2.8.2] [PD1635, vivo X9s Plus, vivo, 25] 08-01 14:48:24.005 26283-26541/com.hzfree.zhlng D/EventLogger: state [0.01, false, B] 08-01 14:48:24.006 26283-26541/com.hzfree.zhlng D/EventLogger: sourceInfo [periodCount=3, windowCount=3 08-01 14:48:24.006 26283-26541/com.hzfree.zhlng D/EventLogger: period [?] 08-01 14:48:24.006 26283-26541/com.hzfree.zhlng D/EventLogger: period [?] 08-01 14:48:24.006 26283-26541/com.hzfree.zhlng D/EventLogger: period [?] 08-01 14:48:24.006 26283-26541/com.hzfree.zhlng D/EventLogger: window [?, false, false] 08-01 14:48:24.006 26283-26541/com.hzfree.zhlng D/EventLogger: window [?, false, false] 08-01 14:48:24.006 26283-26541/com.hzfree.zhlng D/EventLogger: window [?, false, false] 08-01 14:48:24.006 26283-26541/com.hzfree.zhlng D/EventLogger: ] 08-01 14:48:24.019 26283-26541/com.hzfree.zhlng D/EventLogger: loading [true] 08-01 14:48:24.872 26283-20225/com.hzfree.zhlng E/LoadTask: Unexpected exception loading stream java.lang.IllegalArgumentException at com.google.android.exoplayer2.util.Assertions.checkArgument(Assertions.java:39) at com.google.android.exoplayer2.util.ParsableByteArray.setPosition(ParsableByteArray.java:146) at com.google.android.exoplayer2.util.ParsableByteArray.skipBytes(ParsableByteArray.java:158) at com.google.android.exoplayer2.video.AvcConfig.buildNalUnitForChild(AvcConfig.java:93) at com.google.android.exoplayer2.video.AvcConfig.parse(AvcConfig.java:60) at com.google.android.exoplayer2.extractor.flv.VideoTagPayloadReader.parsePayload(VideoTagPayloadReader.java:89) at com.google.android.exoplayer2.extractor.flv.TagPayloadReader.consume(TagPayloadReader.java:65) at com.google.android.exoplayer2.extractor.flv.FlvExtractor.readTagData(FlvExtractor.java:265) at com.google.android.exoplayer2.extractor.flv.FlvExtractor.read(FlvExtractor.java:167) at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:856) at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:320) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:762)

08-01 14:48:32.859 26283-20224/com.hzfree.zhlng E/ExoPlayerImplInternal: Source error. com.google.android.exoplayer2.upstream.Loader$UnexpectedLoaderException: Unexpected IllegalArgumentException: null at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:342) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:762) Caused by: java.lang.IllegalArgumentException at com.google.android.exoplayer2.util.Assertions.checkArgument(Assertions.java:39) at com.google.android.exoplayer2.util.ParsableByteArray.setPosition(ParsableByteArray.java:146) at com.google.android.exoplayer2.util.ParsableByteArray.skipBytes(ParsableByteArray.java:158) at com.google.android.exoplayer2.video.AvcConfig.buildNalUnitForChild(AvcConfig.java:93) at com.google.android.exoplayer2.video.AvcConfig.parse(AvcConfig.java:60) at com.google.android.exoplayer2.extractor.flv.VideoTagPayloadReader.parsePayload(VideoTagPayloadReader.java:89) at com.google.android.exoplayer2.extractor.flv.TagPayloadReader.consume(TagPayloadReader.java:65) at com.google.android.exoplayer2.extractor.flv.FlvExtractor.readTagData(FlvExtractor.java:265) at com.google.android.exoplayer2.extractor.flv.FlvExtractor.read(FlvExtractor.java:167) at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:856) at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:320) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)  at java.lang.Thread.run(Thread.java:762)  08-01 14:48:32.862 26283-26541/com.hzfree.zhlng E/EventLogger: playerFailed [8.86] com.google.android.exoplayer2.ExoPlaybackException at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:349) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:181) at android.os.HandlerThread.run(HandlerThread.java:61) Caused by: com.google.android.exoplayer2.upstream.Loader$UnexpectedLoaderException: Unexpected IllegalArgumentException: null at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:342) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:762) Caused by: java.lang.IllegalArgumentException at com.google.android.exoplayer2.util.Assertions.checkArgument(Assertions.java:39) at com.google.android.exoplayer2.util.ParsableByteArray.setPosition(ParsableByteArray.java:146) at com.google.android.exoplayer2.util.ParsableByteArray.skipBytes(ParsableByteArray.java:158) at com.google.android.exoplayer2.video.AvcConfig.buildNalUnitForChild(AvcConfig.java:93) at com.google.android.exoplayer2.video.AvcConfig.parse(AvcConfig.java:60) at com.google.android.exoplayer2.extractor.flv.VideoTagPayloadReader.parsePayload(VideoTagPayloadReader.java:89) at com.google.android.exoplayer2.extractor.flv.TagPayloadReader.consume(TagPayloadReader.java:65) at com.google.android.exoplayer2.extractor.flv.FlvExtractor.readTagData(FlvExtractor.java:265) at com.google.android.exoplayer2.extractor.flv.FlvExtractor.read(FlvExtractor.java:167) at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:856) at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:320) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)  at java.lang.Thread.run(Thread.java:762) 

问题log(如果有)


xxxxxxx
CarGuo commented 6 years ago

DetailExoListPlayer 是exoplayer的,你试试 DetailListPlayer

hy20160705 commented 6 years ago

DetailExoListPlayer 的和DetailListPlayer有什么区别 我之前用exo的这种 是由于我这个是做视频监控的 有些格式是m3u8的 所以采用了exo的

CarGuo commented 6 years ago

播放内核都不一样。而且detailExoList用的是自定义的。 你如果想用exoplayer内核,就使用DetailListPlayer,然后使用GSYVideoManager.instance().setVideoType(this, GSYVideoType.IJKEXOPLAYER2);

hy20160705 commented 6 years ago

可以设置进入就默认横屏展示吗

CarGuo commented 6 years ago

你把activity设置为横屏不就可以了

hy20160705 commented 6 years ago

哦了哦了 我再加了这句 GSYVideoType.setShowType(GSYVideoType.SCREEN_MATCH_FULL);就全部填充了 谢谢