yangchaojiang / yjPlay

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

roomanl opened this issue · comments

使用版本: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”就是本地路径

commented

你解决这个问题了吗

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

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

使用数据源使用错误,肯定报错,参考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; }
不知道是不是更合理些

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

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

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

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

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

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

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

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

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

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

收到,谢谢老哥!!

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

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

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

收到,谢谢老哥!!

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

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

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

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

收到,谢谢老哥!!

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

是的 楼上说的没错