- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想从我的服务器播放 mp3 文件,我执行以下操作:
NSURL *url = [NSURL URLWithString:item.audioUrl];
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:url];
self.player = [AVPlayer playerWithPlayerItem:playerItem];
self.player addObserver:self forKeyPath:@"status" options:0 context:nil];
self.hud = [[MBProgressHUD alloc]initWithFrame:CGRectMake(150, 5, 50, 50)];
self.hud.mode = MBProgressHUDModeIndeterminate;
[self.hud show:YES];
[self.containerView addSubview:self.hud];
这是我的 observeValueForKeyPath:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if (object == self.player && [keyPath isEqualToString:@"status"])
{
if (self.player.status == AVPlayerStatusReadyToPlay)
{
[self.hud hide:YES];
[self.player play];
.
.
.
现在的问题是,即使 AVPlayer 的状态已更改为“readyToPlay”,它仍然需要大约 2-3 秒才能开始播放,当然我的加载 Spinner 在音乐开始之前会被隐藏....任何想法?
最佳答案
尝试使用方法 [self.player addObserver:self forKeyPath:@"status"options:0 context:nil];
by [self.playerItem addObserver:self forKeyPath:@"状态”选项:0 上下文:无]
关于ios - AVPlayer 在状态达到 "ReadyToPlay"后仍有延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25288505/
我正在努力实现与 snapchat 相同的目标。也就是说,当用户完成拍摄视频并进入预览 View 时,视频会卡住一秒钟左右,直到视频准备好播放为止,然后开始播放。我正在努力实现同样的目标。以下是我尝试
使用 AVPlayer 上的 Apple 文档,播放器状态应在准备就绪时枚举 player.status == ReadyToPlay。 我发现 Xcode 将其作为未解析的标识符返回 - 我查看了
我想从我的服务器播放 mp3 文件,我执行以下操作: NSURL *url = [NSURL URLWithString:item.audioUrl]; AVPlayerItem *playerIte
我尝试用 swift 语言缓冲并立即播放 remote url 音频。 但问题是readyToPlay案例和播放时间过长。 例如,一个声音 url 大约需要 12 到 15 秒才能运行。 这是我的代码
我们将来自 URL 的 MP4 视频加载到 AVPlayer 中。当 AVPlayer 进入“Ready To Play”状态时,AVPlayer 在我们隐藏的骨架图像后面。 我们希望在隐藏骨架图像后
我正在使用 AVPlayer 和 AVPlayerItem 播放实时视频。我正在观察 AVPlayerItem 的 status、isPlaybackLikelyToKeepUp 和 AVPlayer
我有一个在 player.status 上使用 KVO 的实现,很像记录在案的建议 here . 这里是相关的部分: var player: AVPlayer? var url = URL(strin
我是一名优秀的程序员,十分优秀!