日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

视频播放器AVPlayer

發布時間:2024/1/1 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 视频播放器AVPlayer 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、采用AVPlayer進行封裝
2、通過單例視頻管理類全局控制視屏的播放暫停和移除視頻view
3、播放視圖和工具條獨立封裝,完全解耦

4、封裝獨立的彈框視圖,可加網絡判斷來是否繼續播放

github地址:https://github.com/Janko0/JKAVPlayer


播放器使用

//
//? ViewController.m
//? JKPlayer
//
//? Created by 楊可 on 2016/12/23.
//? Copyright ? 2016年 Janko. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()<JKPlayerViewDelegate>

@end

@implementation ViewController

- (void)viewDidLoad {
??? [super viewDidLoad];
?? ?
??? UIButton *playBtn = [[UIButton alloc] init];
??? playBtn.frame = CGRectMake(100, 400, 100, 100);
??? [playBtn setTitle:@"播放" forState:UIControlStateNormal];
??? [playBtn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
??? [self.view addSubview:playBtn];
??? [playBtn addTarget:self action:@selector(playVideo) forControlEvents:UIControlEventTouchUpInside];
?? ?
? ?
?? ?
?
//??? [[TTPlayerViewMananger playerViewMananger] replaceSuperView:self.view];
//??? [[TTPlayerViewMananger playerViewMananger] setTopView:self.topView playerDeleagte:self];
?? ?
}
- (void)playVideo {
??? [[JKPlayerViewMananger playerViewMananger] removePlayer];
??? if ([JKPlayerViewMananger playerViewMananger].playerView == nil) {
??????? [[JKPlayerViewMananger playerViewMananger] setPlayerViewFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_WIDTH * (9 / 16.0)) topView:nil selfSuperView:self.view delegate:self];
??? }
??? [JKPlayerViewMananger playerViewMananger].playerView.showBackBtn = YES;
??? if ([JKPlayerViewMananger playerViewMananger].playerView.indicatorView.isAnimating) {
??????? [[JKPlayerViewMananger playerViewMananger].playerView.indicatorView startAnimation];
??? }
??? //http://baobab.cdn.wandoujia.com/14468618701471.mp4
??? [[JKPlayerViewMananger playerViewMananger] playWithVideoUrlString:@"http://test.bjrenrentong.com/hls/host1-d5fbb6440bea7f29c7edf23f6bc7b89c.mov/m3u8"];
}

- (CGRect)getHalfScreenFrame
{
??? return CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_WIDTH * (9 / 16.0));
}

- (void)loadVideoFinish:(BOOL)isLoadSuccess
{
??? if (isLoadSuccess)
??? {
??????? [[JKPlayerViewMananger playerViewMananger] playVideo];
??? }
??? else
??? {
??????? [SVProgressHUD showErrorWithStatus:@"視頻出錯啦"];
??? }
}


@end



播放器管理類實現

//
//? JKPlayerViewMananger.m
//? JKPlayer
//
//? Created by Janko on 16/6/28.
//? Copyright ? 2016年 Janko. All rights reserved.
//

#import "JKPlayerViewMananger.h"
@interface JKPlayerViewMananger ()

@end
@implementation JKPlayerViewMananger
static JKPlayerViewMananger *mananger;
static JKPlayerView *playerView;

+ (instancetype)playerViewMananger {
??? static dispatch_once_t onceToken;
??? dispatch_once(&onceToken, ^{
??????? mananger = [[JKPlayerViewMananger alloc] init];
??? });
??? return mananger;
}


- (instancetype)setPlayerViewFrame:(CGRect)frame topView:(UIView *)topView selfSuperView:(UIView *)selfSuperView delegate:(id<JKPlayerViewDelegate>)delegate {
??? self.playerView = [[JKPlayerView alloc] initWithFrame:frame topView:topView selfSuperView:selfSuperView delegate:delegate];
??? if (self.playerView.isFullScreen) {
??????? [self.playerView changeToHalfScreen];
??? }
??? return self;
}

- (void)playWithVideoUrlString:(NSString *)videoUrlString selfSuperView:(UIView *)selfSuperView {
??? [self.playerView playWithVideoUrlString:videoUrlString selfSuperView:selfSuperView];
}
- (void)seJKopView:(UIView *)topView playerDeleagte:(id<JKPlayerViewDelegate>) delegate {
??? [self.playerView seJKopView:topView playerDeleagte:delegate];
}

#pragma mark - 外部接口

- (void)changeToHalfScreen {
??? [self.playerView changeToHalfScreen];
}
- (void)playWithVideoUrlString:(NSString *)videoUrlString {
??? [self.playerView playWithVideoUrlString:videoUrlString];
}

- (void)releaseSelf {
??? [self.playerView releaseSelf];
}

- (void)replaceSuperView:(UIView *)selfSuperView {
??? [self.playerView replaceSuperView:selfSuperView];
}
- (void)removePlayer {
??? [self.playerView removePlayer];
??? [self.playerView.selfSuperView removeFromSuperview];
??? self.playerView = nil;
}

- (void)pauseVideo {
??? [self.playerView pauseVideo];
}

- (void)playVideo {
??? [self.playerView playVideo];
}

@end

具體實現內容到GitHub上下載源代碼github地址:https://github.com/Janko0/JKAVPlayer,有什么問題歡迎提出(麻煩給個star)

總結

以上是生活随笔為你收集整理的视频播放器AVPlayer的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 向日葵视频在线 | www.xxx.国产 | 久久伊人成人 | 91禁在线动漫 | 亚洲精品国产精品乱码 | 五月天在线观看 | caopeng视频| 恶虐女帝安卓汉化版最新版本 | 淫综合网 | 日本视频色 | 波多野结衣50连登视频 | 污污视频免费网站 | 国产毛片18| 最新色网站| 中文写幕一区二区三区免费观成熟 | 欧洲精品二区 | 免费91视频 | 成人综合网址 | 亚洲精品一区二区三区四区五区 | 日韩中文字幕在线播放 | 国产乡下妇女做爰 | 日韩理论在线观看 | 亚洲网站在线免费观看 | 涩涩涩涩涩涩涩涩涩 | 视频免费观看在线 | 久草电影在线 | 成人极品 | 国产成人77亚洲精品www | 亚洲视频在线免费看 | 日韩成人高清视频在线观看 | 日本特黄一级片 | 亚洲欧美另类在线 | 美女扒开大腿让男人桶 | 一本一道久久a久久精品蜜桃 | 亚洲熟妇无码一区二区三区导航 | 主播福利在线 | 丰满人妻妇伦又伦精品国产 | 久久综合中文 | 国产精品第8页 | 午夜精品三级久久久有码 | 男欢女爱久石 | 久久在线中文字幕 | 国产白浆在线观看 | 午夜在线观看影院 | 国产精品羞羞答答在线 | 又黄又免费的网站 | 三级免费网站 | 亚洲免费中文字幕 | 国产aa| 国产一区二区三区精品愉拍 | 国产白丝精品91爽爽久久 | 福利小视频在线观看 | 日日爽夜夜爽 | 夜夜撸网站 | 免费av动漫 | 久久无吗视频 | 国产毛片一区二区三区va在线 | 狠狠爱欧美 | 日韩毛片高清在线播放 | 公侵犯人妻一区二区 | 大陆极品少妇内射aaaaa | 日韩精品一区二区三区无码专区 | 一曲二曲三曲在线观看中文字幕动漫 | 日韩视频一区二区三区四区 | 性免费网站| 少妇高潮灌满白浆毛片免费看 | 色悠悠网 | 日韩欧美精品一区二区 | 久草热线 | 欧美 日韩 国产 在线 | 青青在线视频观看 | 国产精品成人在线观看 | 天堂网av在线 | 国产精品福利影院 | 性猛交富婆╳xxx乱大交麻豆 | 国产人伦精品一区二区三区 | 狠狠干免费视频 | 713电影免费播放国语 | 神马午夜伦理影院 | 国产精品自拍网站 | 影音资源av | 成年女人毛片 | 交视频在线播放 | 午夜一级影院 | 天天射天天干 | 免费午夜视频在线观看 | 99久免费精品视频在线观78 | 夜夜骑av| 欧美色图在线观看 | 日韩电影精品 | 最近2018年手机中文字幕版 | 激情丁香网 | 欧美无砖专区免费 | 亚洲AV成人无码久久精品同性 | 国产成人片 | 美女三级视频 | 国产女人被狂躁到高潮小说 | 啪啪自拍 | 97爱爱爱 |