草庐IT

playerItem

全部标签

ios - AVPlayer 不在后台加载媒体

在后台运行时,我的AVPlayer实现无法播放下载的音频(例如播客),但能够播放本地存储的歌曲。无法在后台播放只有当手机与我的电脑断开连接时。如果我的手机直接连接到我的计算机/调试器,则任何本地媒体或下载的媒体都可以毫无问题地播放。在前台,播放任何一种媒体类型也没有问题。这是我的实现:AVPlayer*moviePlayer;AVPlayerItem*playerItem;NSURL*address=/*theurlofeitheralocalsongorremotemedia*/if(moviePlayer!=nil){NSLog(@"removingrate,playbackBuf

ios - 在 SceneKit 中播放视频的最佳方式是什么?

我尝试了多种不同的技术来在SceneKit中播放视频,但它们似乎都无法正常工作。我已经尝试将AVPlayerLayer分配给SCNMaterial.diffuse.contents并且根本无法显示任何视频帧,尽管声音播放正常。我也尝试过将包含SKVideoNode子节点的SpriteKiteSKScene分配给SCNMaterial.diffuse.contents,并且效果很好,尽管(asnotedbyothersonStackOverflow)它每次播放视频时都会泄漏兆字节的内存,直到最后iOS杀死应用程序。最后,由于它现在在iOS11.0+中受支持并得到@mnuages和其他人的

ios - AVPlayerItem 和 KVO - 我错过了什么吗?

所以在一个简单Controller的初始化中我有这段代码:self.playerItem=[AVPlayerItemplayerItemWithURL:url];[self.playerItemaddObserver:selfforKeyPath:@"status"options:0context:nil];哪个应该尝试从url加载媒体,对吗?我正在实现observeValueForKeyPath:ofObject:change:context:然而,这个方法永远不会被调用。没头绪? 最佳答案 playerItem在分配给AVPla

ios - 如何快速播放来自http数据流的音频

我有一个来自http响应的音频数据流。我使用URLSessionDataDelegate方法接收字节数据包:urlSession(_session:URLSession,dataTask:URLSessionDataTask,didReceivedata:Data)我使用AVAudioPlayer对象及其initWithData:初始化方法将所有数据包附加到单个数据对象后成功播放了音频。我真正想做的是在数据仍在输入时开始音频播放-有效地流式传输音频。对于这个用例,我还没有看到任何看起来优雅的答案。我见过的选项是:使用AudioToolbox:音频文件流服务和音频队列使用NSStream

ios - Swift iOS -CMTimeMakeWithSeconds : warning: error of -0. 433 由于时间尺度非常短而引入

我正在使用AVPlayer播放视频。我跟着这个视频教程Let'sBuildThatApp我使用UISlider/scrubber来配合视频的当前帧/时间。我有一个10.43秒的视频,我使用快进功能将我带到最后。@objcfileprivatefuncfastForwardButtonTapped(){guardletplayerItem=playerItemelse{return}guardletplayer=playerelse{return}letduration:Float64=CMTimeGetSeconds(playerItem.duration)letseekTime:CM

ios - 为什么 Swift 的 AVPlayer 在一次播放中加载 playerItem 两次?

我正在使用AVFoundation的AVPlayer播放外部mp3文件。我在后端有一个计数器,用于计算文件加载的次数。此服务的唯一客户端只有我,每当我触发播放AVPlayer时,计数器都会增加两个,这意味着AVPlayer发出两次请求。这是有原因的吗,或者我怎样才能防止这种情况发生?这是我的代码:@IBActionfunclisten(sender:UIButton){leturlstring="http://api.server.com/endpoint-to-mp3"leturl=NSURL(string:urlstring)letplayerItem=AVPlayerItem(U

Swift Radio Streaming AVPlayer

我想在Swift中流式传输来自Internet的音频,但还没有找到正确的功能示例。在Objective-CAVPlayerItem*playerItem=[AVPlayerItemplayerItemWithURL:[NSURLURLWithString:streamURL]];[playerItemaddObserver:selfforKeyPath:@"timedMetadata"options:NSKeyValueObservingOptionNewcontext:nil];music=[AVPlayerplayerWithPlayerItem:playerItem];[musi

ios avplayer 触发流式传输超出缓冲区

我想在流缓冲区为空时重新连接到服务器。当AVPlayer或AVPlayerItem缓冲区为空时,如何触发方法?我知道有playbackLikelyToKeepUp、playbackBufferEmpty和playbackBufferFull方法来检查缓冲区状态,但这些不是回调。是否有任何回调函数,或者我应该添加的任何观察者? 最佳答案 您可以为这些键添加观察者:[playerItemaddObserver:selfforKeyPath:@"playbackBufferEmpty"options:NSKeyValueObserving

ios avplayer 触发流式传输超出缓冲区

我想在流缓冲区为空时重新连接到服务器。当AVPlayer或AVPlayerItem缓冲区为空时,如何触发方法?我知道有playbackLikelyToKeepUp、playbackBufferEmpty和playbackBufferFull方法来检查缓冲区状态,但这些不是回调。是否有任何回调函数,或者我应该添加的任何观察者? 最佳答案 您可以为这些键添加观察者:[playerItemaddObserver:selfforKeyPath:@"playbackBufferEmpty"options:NSKeyValueObserving

ios - 在 UITableView 中更改 AVPlayer 的 playerItem

我有一个UITableView包含滚动时要播放的许多视频。由于tableView中的单元格被重复使用,我只实例化一个AVPlayer对于每一行,永远。当一个单元被重新使用时,我只需更改PlayerItem通过调用[self.playerreplaceCurrentItemWithPlayerItem:newItem];.这目前在tableView:cellForRowAtIndexPath内部被间接调用。.向下滚动时,重用发生时有明显的滞后。通过消除过程,我得出的结论是,延迟是由replaceCurrentItemWithPlayerItem引起的。,甚至在它开始播放之前。当删除这一行
12