Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
roomanl opened this issue Aug 25, 2020 · 11 comments
Open

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

roomanl opened this issue Aug 25, 2020 · 11 comments

Comments

@roomanl
Copy link

roomanl commented Aug 25, 2020

使用版本: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
Copy link

gxs-gc commented Aug 27, 2020

你解决这个问题了吗

@yangchaojiang
Copy link
Owner

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

@yangchaojiang
Copy link
Owner

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

@roomanl
Copy link
Author

roomanl commented Aug 27, 2020

使用数据源使用错误,肯定报错,参考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
Copy link
Owner

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

@binbinyYang
Copy link

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

@DaxHuaaaXiii
Copy link

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

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

@binbinyYang
Copy link

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

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

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

@DaxHuaaaXiii
Copy link

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

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

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

收到,谢谢老哥!!

@roomanl
Copy link
Author

roomanl commented Nov 9, 2021

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

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

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

收到,谢谢老哥!!

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

@binbinyYang
Copy link

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

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

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

收到,谢谢老哥!!

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

是的 楼上说的没错

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants