yangchaojiang / yjPlay

一个支持自定义UI布局,流式API, 加密,直播 ,亮度,音量,快进等手势 ,广告视频预览,多种加载模式 ,多种分辨率切换 ,多种封面图, 自定义数据源,列表播放,倍数播放,边播变缓存<font color="red">不是使用AndroidVideoCache</font>,离线播放,神奇的播放器
Apache License 2.0
1.73k stars 301 forks source link

播放本地视频,但是把本地路径当成网络路径了 #301

Open roomanl opened 4 years ago

roomanl commented 4 years ago

使用版本:2.3.61 错误日志: E/ExoPlayerImplInternal: Source error com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: Unable to connect at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:282) at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:83) at com.google.android.exoplayer2.upstream.DataSourceInputStream.checkOpened(DataSourceInputStream.java:102) at com.google.android.exoplayer2.upstream.DataSourceInputStream.open(DataSourceInputStream.java:65) at com.google.android.exoplayer2.upstream.ParsingLoadable.load(ParsingLoadable.java:170) at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:415) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:919) Caused by: java.net.MalformedURLException: no protocol: /storage/emulated/0/Android/data/cn.rootvip.m3u8/files/上的官方大概-.mp4 at java.net.URL.<init>(URL.java:601) at java.net.URL.<init>(URL.java:498) at java.net.URL.<init>(URL.java:447) at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:429) at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:280) at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:83)  at com.google.android.exoplayer2.upstream.DataSourceInputStream.checkOpened(DataSourceInputStream.java:102)  at com.google.android.exoplayer2.upstream.DataSourceInputStream.open(DataSourceInputStream.java:65)  at com.google.android.exoplayer2.upstream.ParsingLoadable.load(ParsingLoadable.java:170)  at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:415)  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)  at java.lang.Thread.run(Thread.java:919)  E/chuangyuan.ycj.videolibrary.video.ExoUserPlayer: onPlayerError:com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: Unable to connect D/chuangyuan.ycj.videolibrary.video.ExoUserPlayer: onPlayerStateChanged:1+playWhenReady:true onPlayerStateChanged::网络状态差,请检查网络。。。 上面日志中的“/storage/emulated/0/Android/data/cn.rootvip.m3u8/files/上的官方大概-.mp4”就是本地路径

gxs-gc commented 4 years ago

你解决这个问题了吗

yangchaojiang commented 4 years ago

使用数据源使用错误,肯定报错,参考demo

yangchaojiang commented 4 years ago

需要本地链接使用这个数据源。,默认只读取网络链接 ······ return new DefaultDataSourceFactory(context, context.getPackageName()); ····· image

roomanl commented 4 years ago

使用数据源使用错误,肯定报错,参考demo

谢谢, 在经过长时间调试数据源这个原因我也发现了。 数据源是一个原因,还有另一个原因。VideoPlayUtils中的inferContentType方法。 ..... if (fileName.matches(".*m3u8.*")) { return C.TYPE_HLS; } ..... 本地连接中包含.m3u8就直接eturn C.TYPE_HLS了。刚好我那本地文件夹的命名就有.m3u8. 如果这里改成 if (fileName.endsWith(".m3u8")) { return C.TYPE_HLS; } 不知道是不是更合理些

yangchaojiang commented 4 years ago

有子类的 不同子类对应的雷, DefaultDataSourceFactory 所有都继承了

binbinyYang commented 3 years ago

老哥 我播放本地视频 提示 播放异常 地址异常,网络不可用 我想问下 我是错了那一步

DaxHuaaaXiii commented 3 years ago

老哥 我播放本地视频 提示 播放异常 地址异常,网络不可用 我想问下 我是错了那一步

老哥您解决了吗?我也是遇到这个问题

binbinyYang commented 3 years ago

老哥 我播放本地视频 提示 播放异常 地址异常,网络不可用 我想问下 我是错了那一步

老哥您解决了吗?我也是遇到这个问题

解决了 他那个里面 有个 DefaultDataSourceFactory 类似于这个 FACTORY 你重写一个 吧里面改一下就好了

DaxHuaaaXiii commented 3 years ago

老哥我播放本地视频提示播放异常地址异常,网络不可用我推荐下我是错了那一步

老哥你解决了吗?我遇到了这个问题

解决了他那个里面有 DefaultDataSourceFactory 这个FACTORY 你改了一个吧里面改一下就好了

收到,谢谢老哥!!

roomanl commented 3 years ago

老哥我播放本地视频提示播放异常地址异常,网络不可用我推荐下我是错了那一步

老哥你解决了吗?我遇到了这个问题

解决了他那个里面有 DefaultDataSourceFactory 这个FACTORY 你改了一个吧里面改一下就好了

收到,谢谢老哥!!

最上面 @yangchaojiang 不都已经解答了吗,使用错了数据源,换正确的就好了

binbinyYang commented 3 years ago

老哥我播放本地视频提示播放异常地址异常,网络不可用我推荐下我是错了那一步

老哥你解决了吗?我遇到了这个问题

解决了他那个里面有 DefaultDataSourceFactory 这个FACTORY 你改了一个吧里面改一下就好了

收到,谢谢老哥!!

最上面@yangchaojiang不都已经回答了,使用错了数据源,换正确的就好了

是的 楼上说的没错