yjPlay icon indicating copy to clipboard operation
yjPlay copied to clipboard

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

Open roomanl opened this issue 3 years ago • 11 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”就是本地路径

roomanl avatar Aug 25 '20 11:08 roomanl

你解决这个问题了吗

gxs-gc avatar Aug 27 '20 03:08 gxs-gc

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

yangchaojiang avatar Aug 27 '20 07:08 yangchaojiang

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

yangchaojiang avatar Aug 27 '20 07:08 yangchaojiang

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

roomanl avatar Aug 27 '20 07:08 roomanl

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

yangchaojiang avatar Aug 27 '20 07:08 yangchaojiang

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

binbinyYang avatar Jul 09 '21 07:07 binbinyYang

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

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

DaxHuaaaXiii avatar Nov 01 '21 03:11 DaxHuaaaXiii

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

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

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

binbinyYang avatar Nov 09 '21 09:11 binbinyYang

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

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

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

收到,谢谢老哥!!

DaxHuaaaXiii avatar Nov 09 '21 09:11 DaxHuaaaXiii

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

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

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

收到,谢谢老哥!!

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

roomanl avatar Nov 09 '21 09:11 roomanl

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

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

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

收到,谢谢老哥!!

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

是的 楼上说的没错

binbinyYang avatar Nov 11 '21 05:11 binbinyYang