replay视频播放器_怎么让手机音乐跟视频一起放

replay视频播放器_怎么让手机音乐跟视频一起放以前项目中需要播放在线视频和在线音频,当时就研究了一下。下面只显示核心代码。1.AVPlayer(负责视频操作,例如播放,暂停,声音的大小,跳到指定的时间)2.AVPlayerLayer(负责视频的可视化区域,视频的播放模式,注意是CALayer,不能接手触摸)3.AVPlayItem(表示AVPlayer播放的资源对象,可以监听其状态)全屏的实现有2种方式1.可以

大家好,又见面了,我是你们的朋友全栈君。

以前项目中需要播放在线视频和在线音频,当时就研究了一下。下面只显示核心代码。

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]; 




有时音乐播放器和视频播放器还需要一个播放进度条。 

待续……………………..



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/125308.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • C++中的数组和字符串,strlen函数,iostream头文件

    C++语法是在C语言的基础上发展而来的,兼容C语言语法。在数组和字符串的概念上也一样。字符数组的定义:

  • java清除session_退出页面自动清除java session方法

    java清除session_退出页面自动清除java session方法在关闭页面时自动清除Sessioncookie,页面缓存。在默认情况下,session对象在关闭浏览器后并不是立刻被销毁,因此,为了考虑系统的安全性,在用户退出时,需要即刻清除session对象,防止他人盗用session对象中的信息。清除session对象内容的主要方法如下:(1)、removeAttribute()方法。该方法是用来删除session对象中保存的指定属性信息。例如:sessi…

  • VS自带反编译DLL工具「建议收藏」

    VS命令提示符下输入ILDasm转载于:https://www.cnblogs.com/Impulse/p/4022413.html

  • STM32的优先级NVIC_PriorityGroupConfig的理解及其使用[通俗易懂]

    STM32的优先级NVIC_PriorityGroupConfig的理解及其使用[通俗易懂]写作原由:因为之前有对stm32优先级做过研究,但是没时间把整理的东西发表,最近项目需要2个串口,但是不是两个串口同时使用,只是随机使用其中一个,程序对2个串口的优先级需要配置;此文思路:“中断优先级”思维导图–>关键要点—>结合图和要点相关程序应用例程讲解;我们先来看ST公司的一张图:我自己依据此图理解,应用思维导图画了一张方便理解:(如果看不清可通过ctrl+鼠标滑轮   …

  • Fiddler4入门——手机抓包

    Fiddler4入门——手机抓包fiddler手机抓包原理及详细的相关配置

  • Z—score模型公式计算_Prim算法

    Z—score模型公式计算_Prim算法算法介绍:zbar算法是现在网上开源的条形码,二维码检测算法,算法可识别大部分种类的一维码(条形码),比如I25,CODE39,CODE128,不过大家更关心的应该是现在很火的QR码的解码效率,随着现在生活中QR码的普及,扫码支付等行为越来越多的被人们接受,关于QR码是什么,QR码的解码流程是什么样的。本篇文章就互联网上的一个开源解码算法zbar进行简单剖析。源码可以在网上搜到,或者去gi

    2022年10月26日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号