关于AVplayer 缓冲问题的处理

1.首先对playerItem 进行监听

[playerItem addObserver:self forKeyPath:@"playbackBufferEmpty" options:NSKeyValueObservingOptionNew context:nil];
[playerItem addObserver:self forKeyPath:@"playbackLikelyToKeepUp" options:NSKeyValueObservingOptionNew context:nil];

2.在监听方法里
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {
if (!player)
{
return;
}

else if (object == playerItem && [keyPath isEqualToString:@"playbackBufferEmpty"])
{
if (playerItem.playbackBufferEmpty) {
// 做一些缓冲的操作 例如展示label 或者 加载一个缓冲条 playBufferEmpty (用于标识是否处于缓冲状态)
playBufferEmpty = TRUE;
[indicator startAnimating];
[vidStreaminglabel setText:@"Buffering..."];
[vidStreaminglabel setHidden:NO];

}
}

else if (object == playerItem && [keyPath isEqualToString:@"playbackLikelyToKeepUp"])
{
if (playerItem.playbackLikelyToKeepUp)
{
//做一些结束缓冲的操作
playBufferEmpty = FALSE;
[indicator stopAnimating];
[vidStreaminglabel setHidden:YES];
}
}
}

 
时间: 2024-11-06 09:41:30

关于AVplayer 缓冲问题的处理的相关文章

AVPlayer的使用,带缓冲

#import "ViewController.h" #import <AVFoundation/AVFoundation.h> @interface ViewController () { AVPlayer *player; AVPlayerItem *playerItem; UIProgressView * progressView; UISlider *_slider; //推断slider是否按下, BOOL isOpen; } @end @implementati

iOS - AVPlayer 音视频播放

iOS - AVPlayer 音视频播放 本文目录 前言 1.本地/网络音视频播放 2.本地/网络音视频播放设置 3.AVPlayerViewControllerDelegate 画中画协议方法 回到顶部 前言 NS_CLASS_AVAILABLE(10_7, 4_0) @interface AVPlayer : NSObject @available(iOS 4.0, *) public class AVPlayer : NSObject NS_CLASS_AVAILABLE_IOS(8_0)

iOS AVPlayer 学习

1 .使用环境: 在实际开发过程中 有需要展示流媒体的模块 ,需求非常简单 :播放 和 暂停 ,其实这个时候有很多选择 ,可以选择 MPMoviePlayerController(MediaPlayer.framework), AVAudioPlayer(AVFunction.framework) 但是考虑到扩展性,高度自定义性  我选择使用 AVPlayer. 事实是对的  后来需求又增加了, 还需要展示播放进度,缓冲进度,变化时间,视频时长等,还有对UI有要求,甚至不为过的说 要苹果手机那个

iOS开发 - AVPlayer实现流音频边播边存

边播边下有三套左右实现思路,本文使用AVPlayer + AVURLAsset实现. 概述 1. AVPlayer简介 AVPlayer存在于AVFoundation中,可以播放视频和音频,可以理解为一个随身听 AVPlayer的关联类: AVAsset:一个抽象类,不能直接使用,代表一个要播放的资源.可以理解为一个磁带子类AVURLAsset是根据URL生成的包含媒体信息的资源对象.我们就是要通过这个类的代理实现音频的边播边下的 AVPlayerItem:可以理解为一个装在磁带盒子里的磁带 2

iOS开发:AVPlayer实现流音频边播边存

iOS开发:AVPlayer实现流音频边播边存 概述 1. AVPlayer简介 AVPlayer存在于AVFoundation中,可以播放视频和音频,可以理解为一个随身听 AVPlayer的关联类: AVAsset:一个抽象类,不能直接使用,代表一个要播放的资源.可以理解为一个磁带子类AVURLAsset是根据URL生成的包含媒体信息的资源对象.我们就是要通过这个类的代理实现音频的边播边下的 AVPlayerItem:可以理解为一个装在磁带盒子里的磁带 2. AVPlayer播放原理 给播放器

AVPlayer播放网络音乐

AVPlayer播放网络音乐 作者 Wy_chris 关注 2016.09.23 17:23* 字数 411 阅读 355评论 6喜欢 6 下载地址:AVPlayer播放网络音乐 音乐播放并展示到界面上需要我们实现的功能如下: 1.(核心)播放器通过一个网络链接播放音乐2.(基本)播放器的常用操作:暂停.播放.上一首.下一首等等3.(基本)监听该音乐的播放进度.获取音乐的总时间.当前播放时间4.(基本)监听改播放器状态:?????(1)媒体加载状态?????(2)数据缓冲状态?????(3)播放

基于 AVPlayer 自定义播放器

如果我只是简单的播放一个视频,而不需要考虑播放器的界面.iOS9.0 之前使用 MPMoviePlayerController, 或者内部自带一个 view 的 MPMoviePlayerViewController.  iOS9.0 之后,可以使用 AVPictureInPictureController, AVPlayerViewController, 或者 WKWebView. 以上系统提供的播放器由于高度的封装性, 使得自定义播放器变的很难. 所以,如果我需要自定义播放器样式的时候,可以

AVPlayer的基本使用

2014-5-7 06:46| 发布者: admin| 查看: 437| 评论: 0 摘要: 在iOS开发中,播放视频通常有两种方式,一种是使用MPMoviePlayerController(需要导入MediaPlayer.Framework),还有一种是使用AVPlayer.关于这两个类的区别可以参考http://stackoverflow.com/questions/814694 ... 在ios开发中,播放视频通常有两种方式,一种是使用MPMoviePlayerController(需要导

iOS: ios视频播放(MPMediaPlayerController,AVPlayer,AVPlayerViewcontroller、ffmpeg-AVPlayer)

介绍: 和音频播放一样,ios也提供个很多的API.如mediaPlayer.framework下的MPMediaPlayerController.AVFounditon.framework下的AVPlayer和AVKit下的AVPlayerViewcontroller.MPMovieplayerController已经在ios9.0中被废弃了,用来替代的是AVPlayerViewcontroller.尽管如此,但还是说一下比较熟悉的MPMovieplayerController. 1.MPMo