playerlayerandroid withlayerplayer 怎么移除

Potlayer播放器两个简单问题_potplayer吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:15,997贴子:
Potlayer播放器两个简单问题收藏
因为工作原因,经常要用到这个播放器。我一般都是笔记本接着投影,用VGA扩展模式,也就是分屏模式,Potlayer的播放列表在电脑屏幕上,而播放器的主画面是在投影上面。那么在大会现场的时候,有时候主持人或者台上的其他人会挡住一点屏幕,我鼠标根本就无法点击到播放器的全屏按钮,有没有什么方法能让Potlayer实现双击全屏播放,或者把全屏播放的按钮放在播放列表这里也可以。还有第二个问题,我一般都是预先在播放列表里边放好几个视频,但是我发现这个播放器好像只有两种播放模式,一个就是单个循环,另一个就是列表循环,难道它真的就不能只播放一遍么?希望大神能解决这两个小问题。谢谢啦
player一站式采购批发,就在阿里巴巴;全球领先的网上交易市场和商人社区;阿里巴巴 - 汇聚海量商机信息,提供便捷在线交易!
第一个问题基本已经解决了,快捷键基本上就可以解决了,回车键就可以了。第二个问题其实问题也不算很大,但是感觉还是韩国人的逻辑比较奇怪,因为我是会议用的,一个会议下来,大大小小的视频可能有十几个,我把序列都排好了,但是它真的就不能实现单个视频播放么?
鼠标中键全屏,第二个问题你是说自动播放下一个视频的问题?
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或音视频 多媒体(2)
iOS8之后系统自带使用AVPlayerViewController播放视频
AVPlayerViewController
AVPlayerViewController和导航控制器差不多,需要将它添加在一个视图控制器上,将它的视图添加视图上
1.导入头文件
#import &AVKit/AVKit.h&
#import &AVFoundation/AVFoundation.h&
2.声明成员变量
AVPlayerViewController
AVAudioSession
3.使用播放器
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.view.backgroundColor = [UIColor whiteColor];
_session = [AVAudioSession sharedInstance];
[_session setCategory:AVAudioSessionCategoryPlayback error:nil];
_player = [AVPlayer playerWithURL:[NSURL URLWithString:@&https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4&]];
_playerController = [[AVPlayerViewController alloc] init];
_playerController.player = _
_playerController.videoGravity = AVLayerVideoGravityResizeA
_playerController.allowsPictureInPicturePlayback =
//画中画,iPad可用
_playerController.showsPlaybackControls =
[self addChildViewController:_playerController];
_playerController.view.translatesAutoresizingMaskIntoConstraints =
//AVPlayerViewController 内部可能是用约束写的,这句可以禁用自动约束,消除报错
//self.view.bounds
_playerController.view.frame = CGRectMake(0, 0, 320, 300);
[self.view addSubview:_playerController.view];
[_playerController.player play];
//自动播放
4.如果要使用iOS9的画中画(仅限平板)
代码来自:/IOSjc/1104029.html
而AVPlayer使用稍微麻烦点,不过功能更加强大。
NSString *filePath = [[NSBundle mainBundle] pathForResource:@&backspace& ofType:@&mov&];
NSURL *sourceMovieURL = [NSURL fileURLWithPath:filePath];
AVAsset *movieAsset = [AVURLAsset URLAssetWithURL:sourceMovieURL options:nil];
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:movieAsset];
AVPlayer *player = [AVPlayer playerWithPlayerItem:playerItem];
AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
playerLayer.frame = self.view.layer.
playerLayer.videoGravity = AVLayerVideoGravityResizeA
[self.view.layer addSublayer:playerLayer];
[player play];
上方的代码实现的效果其实和MPMoviePlayerController实现的是一样的,AVPlayer更强大的地方是它有对应的方法去调节视频的音量以及视频的进度,可以通过简单的UIslider来实现一个简单的播放器,是不是很酷炫呢!(具体的调节方法请参照苹果API)
代码来自:/p/1c8dd331bdb7
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:93302次
积分:1422
积分:1422
排名:千里之外
原创:29篇
转载:133篇
评论:13条
(29)(5)(5)(10)(5)(3)(5)(3)(14)(14)(7)(10)(18)(22)(6)(4)基于AVPlayer简单封装的播放器 - 推酷
基于AVPlayer简单封装的播放器
直接贴源码吧,也没有很复杂
@interface PlayView : UIView
@property(nonatomic,strong)AVPlayer *
@property(nonatomic,strong)UIView *
@property(nonatomic,strong)AVPlayerItem *playerI
@property(nonatomic,strong)UISlider *
- (id)initWithFrame:(CGRect)frame WithVideoStr:(NSString *)videoS
- (void)PlayOrP
PlayView.m
AVPlayerDemo
Created by 王颜龙 on 14-2-25.
Copyright (c) 2014年 longyan. All rights reserved.
#import "PlayView.h"
static void *PlayViewCMTimeValue = &PlayViewCMTimeV
static void *AVPlayerDemoPlaybackViewControllerStatusObservationContext = &AVPlayerDemoPlaybackViewControllerStatusObservationC
@implementation PlayView
- (id)initWithFrame:(CGRect)frame
self = [super initWithFrame:frame];
if (self) {
// Initialization code
- (id)initWithFrame:(CGRect)frame WithVideoStr:(NSString *)videoStr{
self = [super init];
if (self) {
self.frame =
NSURL *sourceMovieURL = [NSURL fileURLWithPath:videoStr];
AVAsset *movieAsset = [AVURLAsset URLAssetWithURL:sourceMovieURL options:nil];
self.playerItem = [AVPlayerItem playerItemWithAsset:movieAsset];
self.player = [AVPlayer playerWithPlayerItem:self.playerItem];
AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player];
playerLayer.frame = self.layer.
playerLayer.videoGravity = AVLayerVideoGravityResizeA
[self.layer addSublayer:playerLayer];
[self.player play];
self.bottom = [[UIView alloc]initWithFrame:CGRectMake(0, self.frame.size.height - 40, self.frame.size.width, 40)];
self.bottom.backgroundColor = [UIColor grayColor];
UIButton *playBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[playBtn addTarget:self action:@selector(PlayOrPause) forControlEvents:UIControlEventTouchUpInside];
playBtn.frame = CGRectMake(5, 5, 30, 30);
playBtn.backgroundColor = [UIColor redColor];
[self.bottom addSubview:playBtn];
[self addSubview:self.bottom];
self.slider = [[UISlider alloc]initWithFrame:CGRectMake(45, 5, 200, 30)];
self.slider.minimumValue = 0.0;
self.slider.maximumValue = CMTimeGetSeconds(movieAsset.duration);
self.slider.value = 0.0;//指定初始值
[self.slider addTarget:self action:@selector(updateValue:) forControlEvents:UIControlEventTouchUpInside];//设置响应事件
[self.bottom addSubview:self.slider];
// 单击的 Recognizer
UITapGestureRecognizer* singleRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTapFrom)];
singleRecognizer.numberOfTapsRequired = 1; // 单击
[self addGestureRecognizer:singleRecognizer];
[self.playerItem addObserver:self
forKeyPath:@"status"
options:NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew
context:AVPlayerDemoPlaybackViewControllerStatusObservationContext];
[self initScrubberTimer];
- (double)duration
AVPlayerItem *playerItem = [[self player] currentItem];
if ([playerItem status] == AVPlayerItemStatusReadyToPlay)
return CMTimeGetSeconds([[playerItem asset] duration]);
return 0.f;
- (double)currentTime
return CMTimeGetSeconds([[self player] currentTime]);
- (void)setCurrentTime:(double)time
[[self player] seekToTime:CMTimeMakeWithSeconds(time, 1)];
- (void)PlayOrPause{
if ([[self player] rate] != 1.f) {
if ([self currentTime] == [self duration])
[self setCurrentTime:0.f];
[[self player] play];
[[self player] pause];
CMTime time = [self.player currentTime];
NSLog(@"%lld",self.playerItem.duration.value/self.playerItem.duration.timescale);
NSLog(@"%lld",time.value/time.timescale);
#pragma mark - 手势方法
- (void)handleSingleTapFrom{
[UIView animateWithDuration:0.5 animations:^{
if (self.bottom.alpha == 0.0) {
self.bottom.alpha = 1.0;
self.bottom.alpha = 0.0;
} completion:^(BOOL finish){
#pragma mark - slider
- (void)updateValue:(UISlider *)slider{
[self.player seekToTime:CMTimeMakeWithSeconds(slider.value, 1)];
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
/* AVPlayerItem "status" property value observer. */
if (context == AVPlayerDemoPlaybackViewControllerStatusObservationContext)
AVPlayerStatus status = [[change objectForKey:NSKeyValueChangeNewKey] integerValue];
switch (status)
/* Indicates that the status of the player is not yet known because
it has not tried to load new media resources for playback */
case AVPlayerStatusUnknown:
case AVPlayerStatusReadyToPlay:
/* Once the AVPlayerItem becomes ready to play, i.e.
[playerItem status] == AVPlayerItemStatusReadyToPlay,
its duration can be fetched from the item. */
[self initScrubberTimer];
case AVPlayerStatusFailed:
maik - 监听
-(void)initScrubberTimer
double interval = .1f;
CMTime playerDuration = [self playerItemDuration];
if (CMTIME_IS_INVALID(playerDuration))
double duration = CMTimeGetSeconds(playerDuration);
if (isfinite(duration))
CGFloat width = CGRectGetWidth([self.slider bounds]);
interval = 0.5f * duration /
NSLog(@"interva === %f",interval);
__weak typeof(self) weakSelf =
/* Update the scrubber during normal playback. */
[weakSelf.player addPeriodicTimeObserverForInterval:CMTimeMakeWithSeconds(interval, NSEC_PER_SEC)
queue:NULL /* If you pass NULL, the main queue is used. */
usingBlock:^(CMTime time)
[self syncScrubber];
/* Set the scrubber based on the player current time. */
- (void)syncScrubber
NSLog(@"syncScrubber");
CMTime playerDuration = [self playerItemDuration];
if (CMTIME_IS_INVALID(playerDuration))
self.slider.minimumValue = 0.0;
double duration = CMTimeGetSeconds(playerDuration);
if (isfinite(duration))
float minValue = [self.slider minimumValue];
float maxValue = [self.slider maximumValue];
double time = CMTimeGetSeconds([self.player currentTime]);
NSLog(@"时间 :: %f",(maxValue - minValue) * time / duration + minValue);
[self.slider setValue:(maxValue - minValue) * time / duration + minValue];
- (CMTime)playerItemDuration
AVPlayerItem *playerItem = [self.player currentItem];
NSLog(@"%ld",playerItem.status);
if (playerItem.status == AVPlayerItemStatusReadyToPlay)
return([playerItem duration]);
return(kCMTimeInvalid);
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致正在播放:AVKit(3):视频播放层(使用PlayerLayer)
下载学院APP缓存视频离线看
购买本课程后即可享受以下服务:
24小时讲师答疑
所有课时永久观看
购买课程返学分
价格:59金币
购买本课程后,就可以记笔记了~~
开始记笔记……
记录时间点
我的笔记同学的笔记
购买本课程后,就可以提问题了~~
向老师提问……
记录时间点
我的问题同学的问题&&&&用Layer自定义的视频播放功能,支持网络播放,快进等等。
测试环境:
&&[Code4App]编译测试
相关代码:
(18952次查看,6115次下载) 在线直播视频,服务器端采用https,客户端直接采用苹果官网请求方式,忽略服务端SSL证书,视频播放直接用苹果播放播放方法。
(44245次查看,17983次下载) 简单实现视频的边下载边播放功能。
(43378次查看,15407次下载) 实现功能齐全的视频播放器类库,可以代替MPMoviePlayerController。可以播放本地视频以及远程视频(即在线播放),支持拖动进度条,快进,后退,暂停,全屏等操作。
(50436次查看,15539次下载) 用 AVPlayer 类写的简易视频播放器,可以播放来自互联网的视频,支持手势缩放视频,手指上下滑动视频界面控制音量大小(仅在真机中有效)。
代码评论:
登录后方可评论
-控件分类-
-功能分类-

我要回帖

更多关于 cocos2dx 移除layer 的文章

 

随机推荐