当前位置:网站首页>replay视频播放器_怎么让手机音乐跟视频一起放
replay视频播放器_怎么让手机音乐跟视频一起放
2022-08-02 14:00:00 【全栈程序员站长】
大家好,又见面了,我是你们的朋友全栈君。
以前项目中需要播放在线视频和在线音频,当时就研究了一下。下面只显示核心代码。
1.AVPlayer (负责视频操作,例如播放,暂停,声音的大小,跳到指定的时间)
2.AVPlayerLayer(负责视频的可视化区域,视频的播放模式,注意是CALayer,不能接手触摸)
3.AVPlayItem (表示AVPlayer播放的资源对象,可以监听其状态)
全屏的实现有2种方式
1.可以通过transform 来让view旋转(缺点是不能触发屏幕的旋转)。2可以通过autolayout 来实现
当视频或音频播放完之后,我们可以使App 自动去播放下一首视频或者音频。这是我们就需要为去注册一个通知,用这个通知去实现监听avplayer.currentItem
代码如下
//给AVPlayerItem添加播放完成通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playbackFinished:) name:AVPlayerItemDidPlayToEndTimeNotification object:self.player.currentItem];
//播放完成之后会执行这个函数
-(void)playbackFinished:(NSNotification *)notification{
MyLog(@”视频播放完成“);
AVPlayerItem * p = [notification object];
//关键代码
[p seekToTime:kCMTimeZero];
[self pause];
self.playBtn.selected=NO;
self.playBtn.hidden=NO;
if([_delegate respondsToSelector:@selector(playNextMusic)]){ //在这里我们可以去实现播放下一首视频和视频的操作。
[self.delegate playNextMusic];
}
}
//监听当前资源的状态属性,监听网络加载情况属性,监控缓存区大小此时我们都需要监听AVPlayerItem,
//监控状态属性,注意AVPlayer也有一个status属性,通过监控它的status也可以获得播放状态
[playerItem addObserver:self forKeyPath:@”status” options:NSKeyValueObservingOptionNew context:nil];
//监控网络加载情况属性
[playerItem addObserver:self forKeyPath:@”loadedTimeRanges” options:NSKeyValueObservingOptionNew context:nil];
//监控缓冲区大小
[playerItem addObserver:self forKeyPath:@”playbackBufferEmpty” options:NSKeyValueObservingOptionNew context:nil];
//我们可以使用这个方法来来显示当前的播放时的时间,代码如下
[self performSelectorInBackground:@selector(initPlayTime) withObject:nil];
有时音乐播放器和视频播放器还需要一个播放进度条。
待续……………………..
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/125308.html原文链接:https://javaforall.cn
边栏推荐
猜你喜欢
网络安全第三次作业
栈 && 队列
科研试剂DSPE-PEG-VIP,二硬脂酰基磷脂酰乙醇胺-聚乙二醇-血管活性肠肽VIP
配置zabbix自动发现和自动注册。
RHCE第一天作业
微信小程序-最近动态滚动实现
Image retrieval method based on deep learning!
eclipse连接数据库后插入数据报错null
You can't accept 60% slump, there is no eligible for gain of 6000% in 2021-05-27
Configure zabbix auto-discovery and auto-registration.
随机推荐
els strip collision deformation judgment
[C language] Analysis of function recursion (2)
【Tensorflow】AttributeError: ‘_TfDeviceCaptureOp‘ object has no attribute ‘_set_device_from_string‘
C语言提高篇(三)
网络安全第五次作业
此次519暴跌的几点感触 2021-05-21
About the development forecast of the market outlook?2021-05-23
未来的金融服务永远不会停歇,牛市仍将继续 2021-05-28
Detailed explanation of stored procedures
机器学习——交叉验证法
Geoffery Hinton:深度学习的下一个大事件
二分查找 && 树
苹果,与Web3 “八字不合”
GTK:Gdk-CRITICAL **: IA__gdk_draw_pixbuf: assertion ‘GDK_IS_DRAWABLE (drawable)’ failed
拯救流浪猫 | 「喵先锋」系列数字版权盲盒明日开抢
【ONE·Data || 排序入门】
SQL函数 UPPER
供应磷脂-聚乙二醇-羧基,DSPE-PEG-COOH,DSPE-PEG-Acid,MW:5000
uview 2.x版本 tabbar在uniapp小程序里头点击两次才能选中图标
第二讲 软件生命周期