Giter VIP home page Giter VIP logo

tbplayer's Introduction

TBPlayer

添加cocoapods 中,请下载1.0tag(https://github.com/suifengqjn/TBPlayer/archive/1.0.zip)

视频变下变播,把播放器播放过的数据流缓存到本地,支持拖动。采用avplayer

实现avplayer状态的捕获和细节的处理

关于这个dome写的一篇文章:文章地址:http://www.jianshu.com/p/990ee3db0563

  • 如果你觉得不错,还请为我star一个,
  • 如果在使用过程中遇到BUG,希望你能Issues我,谢谢

###用法

需要的变量 url:视频网址 showView:放视频的视图

[[TBPlayer sharedInstance] playWithUrl:url2 showView:self.view];

另外自己可以在TBVideoRequestTask 中设置视频的缓存路径,下次播放直接从缓冲读取即可。

tbplayer's People

Contributors

suifengqjn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tbplayer's Issues

缺少文件

工程下载下来后没有这个文件夹 XCHudHelper ,求解

有2个逻辑,请教下思路,看你代码里面没实现

1 看你代码只实现了缓存功能,比如我拖动进度条 到之前已经缓存的部分 ,怎么用上缓存的数据,在你代码里面没找到这部分
2 看视频的时候 中间拖动了一进度条 这样缓存的时候中间就有一部分空白,这种情况 怎么重复利用这种缓存数据?

分段请求时文件没有保存的问题

经过反复测试及抓包,当文件较小时只有一个请求,这时没有任何问题。

当文件较大时会分段请求,只要是分段请求下来的文件都无法没有保存,是因为NSDataoffset不正确。

单例模式问题

单例模式带来的播放问题

利用sharedInstance调用的话,在重复播放视频时,会在计算视频时长的位置卡住,并且闪退

具体闪退点的代码在TBPlayer.m中,调用monitoringPlayBack:方法时出现的

视频卡住和无法保存

我在使用这个播放器的时候,发现了一些问题,会导致视频卡住和无法保存

大概是视频正在加载时,连续调整进度条的位置(当前缓存的位置还大300k),会触发TBVideoRequestTask

  • (void)setUrl:(NSURL *)url offset:(NSUInteger)offset;

方法,去发送新的网络请求,但旧的请求并没有取消

从而导致之前的网络请求依然在回调方法

  • (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response;

里返回了,而你在这个回调方法里执行了[self.taskArr addObject:connection],导致**数组self.taskArr里含有不止一个对象**。

从而导致在回调方法

  • (void)connectionDidFinishLoading:(NSURLConnection *)connection;

里,执行保存的时候由于判断了if (self.taskArr.count < 2)但返回false,所以视频无法保存。

与此同时由于旧的网络还在回调,会导致视频获取到不合适的数据,引发了卡顿的现象。

还有我在使用了一些视频url的时候,视频在开头的时候就会连续执行了TBloaderURLConnection类里的回调方法

  • (void)dealWithLoadingRequest:(AVAssetResourceLoadingRequest *)loadingRequest;

而且前几次执行判断self.task.offset + self.task.downLoadingOffset + 1024 * 300 < range.location的判断的时候,返回都为true,我还不知道这是为什么,但也导致了连续执行setUrl: offset:的方法,所以这些视频总会在一开始前几秒就卡住。

最后的最后,这真的是一个好的项目,我在看到这个之前也在使用在App里开启httpSever的方法,但这个项目真的聪明很多,我受益了不少!!

无法缓存HLS的视频

HLS是苹果官方提出的播放协议,AVPlayer是可以播放的,但是博主的播放器无法播放,也不能缓存到本地。请问博主有更好的方法缓存并离线播放HLS的视频吗?还有这个demo的功能是不是只适用于mp4格式的视频呢?

播放问题

从一个页面push过来播放,pop回去再push无法播放 有没有这也问题

点赞

专门申请了一个账号来给你Star,感觉写得不错。
另外有些API已经提示将要过期,希望能完善并且增加更多的内容,如全屏,音量控制等功能

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.