Coder Social home page Coder Social logo

renzifeng / zfplayer Goto Github PK

View Code? Open in Web Editor NEW
7.0K 159.0 1.7K 156.4 MB

Support customization of any player SDK and control layer(支持定制任何播放器SDK和控制层)

License: MIT License

Objective-C 99.09% Ruby 0.31% C 0.60%
custom player controlview

zfplayer's Introduction

renzifeng

个人blog源码

zfplayer's People

Contributors

bb9z avatar boai avatar djliu328 avatar geeklee609 avatar midea-smart avatar renzifeng avatar victorchee avatar wayneyo avatar wukwei avatar xx-li avatar xxxixxxx 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  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

zfplayer's Issues

支援airplay?

好像沒有支援airplay的樣子,還是沒有打開呢?

按下锁定按钮,依然可以手势操作

还有其他一些细小bug,偶尔出现了两次。不能复现。写的非常不错了。希望加入播放状态的代理。比如按下暂停、播放。开始播放,完成播放等。很多时候需要在暂停是弹出广告,或者播放前先播放一段视频广告。

视频的状态的监听

我现在在做监听视频播放的时长,没有找到相应的方法来知道视频开始播放跟结束播放的时间,可以添加这个功能么?

安装

你好像 还没有添加支持cocoapods吧

uiscrollView中不能播放

  • (ZFPlayerView *)playerView{
    if (_playerView == nil) {
    _playerView = [[ZFPlayerView alloc] init];
    }

    return _playerView;
    }

  • (IBAction)clickPlayButton:(id)sender {

    __weak typeof(self) weakSelf = self;

    [self.newsImageView addSubview:self.playerView];
    [self.playerView mas_makeConstraints:^(MASConstraintMaker *make) {

    //make.top.equalTo(self.view).offset(70);
    //make.left.right.equalTo(self.view);
    
    //make.height.equalTo(self.playerView.mas_width).multipliedBy(9.0f/16.0f).with.priority(750);
    
    make.top.leading.bottom.trailing.equalTo(self.newsImageView);
    

    }];

    DLog(@"%@",self.newsDetailsModel.video);
    self.playerView.videoURL = [NSURL URLWithString:self.newsDetailsModel.video];

    self.playerView.goBackBlock = ^{
    [weakSelf.navigationController popViewControllerAnimated:YES];
    };

}

视频是MP4格式

cell跳屏问题

UITableView中我自定义了两种cell,都能播放视频,点击播放会出现向上跳屏,有时候自动跳,概率事件

iOS7视频全屏

想问下在iOS7,iPhone4s下点击全屏的时候没有全屏播放,约束不正确,其它系统上是OK的

i cant use the ZFPlayer on my project...

im using swift:
here is my code:

import UIKit
import ZFPlayer

class ViewController: UIViewController {

@IBOutlet weak var viewVideo: ZFPlayerView!

var url = NSURL(string: "http://jplayer.org/video/m4v/Big_Buck_Bunny_Trailer.m4v")

override func viewDidLoad() {
    super.viewDidLoad()

    self.viewVideo.videoURL = url
    self.viewVideo.hasDownload = false


    weak var weakSelf = self
    self.viewVideo.goBackBlock = {() -> Void in
        weakSelf!.navigationController!.popViewControllerAnimated(true)
    }
}

here is the result:
captura de tela 2016-04-19 as 13 59 16

隐藏返回按钮

我希望用自己自定义的导航栏上的返回按钮,能不能增加一个隐藏播放视频页面的返回按钮的接口?

在cell上播放时,滑动slider,结束后,视频不能自动播放

感觉像是个小bug,
1,暂停视频播放
2,视频缓冲结束,
3,滑动slider后视频不自动播放,cell上的暂停/播放按钮还是显示播放状态(我认为不能播放就要显示暂停,所以我现在是只要滑动了slider就暂停当前播放,并改变startBtn状态为nom
self.controlView.startBtn.selected = NO;
self.isPauseByUser = YES;)

响应didSelectRowAtIndexPath

点击播放中的视频区域,会响应didSelectRowAtIndexPath.
怎么回事,是cell高度动态计算的原因吗?如果是请问我应该如何解决呢?
菜鸟一枚,真心请教!

想参与这个项目

楼主是否有新的开发计划,可以列一下功能点,以方便更多的人参与。

一些问题

项目里打算用 ZFPlayer,我们的场景是进入播放页面不立即播放,在播放页面有多个视频可以任意切换。

调研中目前发现了这些问题:

  • 如果不立即播放,播放器控件的初始状态不合理,比如返回不会显示
  • 控件不能直接用 videoURL 切换
    • 直接切,playerItem 会 KVO 异常,在列表模式下有时也会出现,已提 PR #19
    • 调用 resetPlayer 会把整个 playerview 从父 view 移除。如果视频非悬浮,任何时候都不应该自己就把自己移除的,已提 PR #21
  • 只能通过 player 本身的返回才能被正确释放,这个设定不合理,这样不支持导航默认的侧滑返回手势,使用起来也不便

一些问题已经尝试修正了,我会把代码同步到 https://github.com/BB9z/ZFPlayer ,保险的修正会提 PR,这个列表也会随之更新。

其他建议:

  • ZFPlayerView 管理了太多 UI 的逻辑了,有些逻辑放到 ZFPlayerControlView 会清晰一些

关于视频锁的建议

视频锁的作用除了限制横竖屏幕之外,就是防误触,视频锁点击的时候,快进等功能都是禁用的,可以参考其他视频播放器

请问视频的缓冲和下载是分开的吗?

最近需要播放视频的功能,这个确实挺好用。
我有个疑问,我不太懂视频这方面的东西,所以可能是我想的太简单了。
我以为视频缓冲好的时候代表视频也就下载好了,比如当 ZFPlayer 的进度条已经到底时,是否就可以直接把这个视频保存到我的相册里呢?
一个已经缓冲好的视频,再进行播放,确实就不需要再进行网络请求。所以有没有办法可以把视频的缓存直接转换成视频文件,保存到相册里。
我用的一个软件有这样的功能,我不懂这方面的,所以不确定是如何做到的。

如何彻底释放playerView

我这样写的:

self.playerView.goBackBlock = ^{
[weakSelf.playerView removeFromSuperview];
};

页面是没了,但是仍能听到声音,weakSelf.playerView = nil;要过一会声音才消失

播放时内存消耗太严重

未播放时大概50几MB的内存占用,播放视频时基本上瞬间增加到150MB以上,这样的内存暴增有些恐怖

提一个问题吧

提一个问题吧。简单的都能使用。但是如果把Device Orientation的 Landscape left 和Landscaoe right 取消勾选。这种情况下,旋转全屏是不支持的。这个要是能优化就好了

下拉通知栏或上拉快捷栏重新播放已关闭的视频声音

在已将视频页面关闭的情况下,发生下拉通知栏或上拉快捷栏重新播放已关闭的视频声音,麻烦告知一下如何解决。我在页面的-dealloc方法中已做了如下操作:
[_playerView pause];
[_playerView cancelAutoFadeOutControlBar];
[_playerView removeFromSuperview];
_playerView = nil;
[[ZFBrightnessView sharedBrightnesView] removeFromSuperview];

列表视频界面的bug

1.连续点击播放三个视频,会崩溃;
2.点击第一个视频,再点击第二个视频,cell会出现复用的问题;
3.点击一个视频,移动tableView,如果不关闭窗口的缩略视频,点击播放其它视频时,缩略视频会消失,cell也会出现复用问题

在下载过程中进入下载控制器此时更换控制器时出现bug

问题:在点击下载后,视频界面pop掉,进入一个主控制的viewcontroller,再点击push进入下载的控制器,正常显示下载内容及下载过程。但是在下载过程中,pop回主控制器后再进入另一主控制器时报错。

报错位置:ZFDownloadManager.m 中
dispatch_async(dispatch_get_main_queue(), ^{
if ([self.delegate respondsToSelector:@selector(downloadResponse:)]) {
[self.delegate downloadResponse:sessionModel];
}
});
错误提示:Thread1: EXC_BAD_ACCESS(code=EXC_1386_GPFLT)

修复在iOS7下会crash的bug

要在ZFPlayerView.m中的layoutsubviews中调用super layoutsubviews方法,要不然在iOS7下会crash
-(void)layoutSubviews
{
[super layoutSubviews];
self.playerLayer.frame = self.bounds;
}

seekToTime from code

can we have functionality from code to move x sec forward or back
or can start playing video from x time
like i want to switch url like youtube for different resolution so want to start playing from that point only

cell跳屏问题

UITableView中我自定义了两种cell,都能播放视频,点击播放会出现向上跳屏,有时候自动跳,概率事件
cell是动态计算高度,现在用的是UITableView+FDTemplateLayoutCell计算cell高度

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.