Tag: avplayer

AVPlayer物品获得一个持续时间

我正在播放一个文件。 来自url的MP3stream。 我正在使用AVPlayer,当我试图获得总时间来build立一个进度条,我得到时间是南。 NSError *setCategoryError = nil; if ([ [AVAudioSession sharedInstance] isOtherAudioPlaying]) { // mix sound effects with music already playing [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategorySoloAmbient error:&setCategoryError]; } else { [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:&setCategoryError]; } if (setCategoryError) { NSLog(@"Error setting category! %ld", (long)[setCategoryError code]); } NSURL *url = [NSURL URLWithString:@"http://..//46698"]; AVPlayer *player = [AVPlayer playerWithURL:url]; songPlayer=player; [songPlayer […]

AVPlayer持续时间是与Twilio南

AVPlayer.currentItem的duration属性始终使用TwilioaudioURL返回NAN 。 但是,audio播放良好。 我能够获得比Twilio所有其他audioURL的duration属性。 示例url来testing这个问题: http://api.twilio.com/2010-04-01/Accounts/AC1db6911efe574fc890ee332f140f7e8c/Recordings/RE06adfbfd2ad2cfd5d95585ff91cb3b88.mp3 以下是我尝试过的不同方式: if (avPlayer.currentItem.status.rawValue == AVPlayerStatus.ReadyToPlay.rawValue) { var asset = AVURLAsset(URL: sourceURL, options: nil) var duration: Float64 = CMTimeGetSeconds(asset.duration) println(duration) } if (avPlayer.currentItem.status.rawValue == AVPlayerStatus.ReadyToPlay.rawValue) { var duration: Float64 = CMTimeGetSeconds(self.avPlayer.currentItem.duration) println(duration) } var thePlayerItem = self.avPlayer.currentItem if thePlayerItem.status.rawValue == AVPlayerStatus.ReadyToPlay.rawValue{ println(CMTimeGetSeconds(thePlayerItem.duration)) println(CMTimeGetSeconds(thePlayerItem.asset.duration)) } 任何帮助,这是表示赞赏。 我已经通过浏览器请求GET ,并且返回了包括audio持续时间<Duration>37</Duration>所有细节 GET /2010-04-01/Accounts/ACda6f1…/Recordings/RE557ce644e5ab84fa21cc21112e22c485.xml 响应: […]

AVPlayer在播放HLS / AESencryptionvideo之前做出无关紧要的http请求

我们在iOS 8.4上使用AVPlayer播放HLS,AESencryption的video。 我们的.m3u8文件包​​括许可证服务器的URL,例如: EXT-X-KEY:METHOD = AES-128,URI = “https://开头……” 在我们的iOS应用程序中,我们使用AVAssetResourceLoaderDelegate方法resourceLoader:shouldWaitForLoadingOfRequestedResource:拦截由AVPlayer(或AVFoundation中的某个对象)发送到许可证服务器的请求。 在该方法中,我们添加一个令牌(许可证服务器要求)到请求的queryString。 许可证服务器用令牌接收请求,返回encryption密钥,并开始回放。 换句话说,一切都按预期工作。 但是 ,我们注意到(在使用“Charles”http monitor的情况下),在创buildAVPlayerItem之后,在调用resourceLoader:方法之前,AVFoundation 向许可证服务器url发送初始请求; 一个不通过方法resourceLoader“路由”的请求: 。 这个请求在服务器上被拒绝了,因为我们的iOS代码从来没有机会在请求消失之前追加令牌。 事件摘要: •AVPlayerItem / AVAsset是使用.m3u8索引文件的URL创build和初始化的。 •AVFoundation框架内的某些内容向.m3u8文件中指定的许可证服务器发出请求。 这个初始请求不被方法recourceLoader拦截:shouldWaitForLoadingOfRequestedResource:并且未修改的请求到达许可证服务器。 由于请求在查询string中不包含所需的标记,因此失败并且不返回encryption密钥。 • AVFoundation向licesnse服务器发出第二个请求 。 这个请求被recourceLoader捕获:…并被适当的修改。 许可证服务器返回encryption密钥并开始播放。 这种行为可以使用Apple的AVARLDelegateDemo应用程序进行复制。 问题: AVFoundation发送的初始http请求是否正常? 如果是这样,为什么它是必要的,为什么不通过resourceLoader:方法“路由”? 是否可以抑制初始请求或在发送之前对其进行修改? 谢谢!

iOS AVPlayer取消缓冲

如果我用来自主机的文件加载AVPlayer [AVPlayer playerWithPlayerItem:playerItem]; 而“ 缓冲 ”需要的时间比用户想要的要长,我该如何让他们取消呢?

如何用AVPlayerparsingm3u文件

我想从m3u文件头获取跟踪信息,而不是从id3Tags。 在AVPlayer的timedMetaData属性中,仅提供了id3Tagparsing。 我怎样才能用AVPlayer从m3u文件中获得标题,艺术家,url等 #EXTM3U #EXT-X-ALLOW-CACHE:NO #EXT-X-TARGETDURATION:11 #EXT-X-MEDIA-SEQUENCE:0 #EXTINF:10,title="Dark Horse",artist="Katy Perry / Juicy J",url="song_spot=\"M\" MediaBaseId=\"1971116\" itunesTrackId=\"0\" amgTrackId=\"-1\" amgArtistId=\"0\" TAID=\"35141\" TPID=\"23894643\" cartcutId=\"0729388001\" amgArtworkURL=\"http://assets.iheart.com/images/1080/MI0003667474\" length=\"00:03:32\" unsID=\"-1\"" http://chunks.ihrhls.com/1469/GqsS8fnz2S6-301028-9984.aac #EXTINF:10,title="Dark Horse",artist="Katy Perry / Juicy J",url="song_spot=\"M\" MediaBaseId=\"1971116\" itunesTrackId=\"0\" amgTrackId=\"-1\" amgArtistId=\"0\" TAID=\"35141\" TPID=\"23894643\" cartcutId=\"0729388001\" amgArtworkURL=\"http://assets.iheart.com/images/1080/MI0003667474\" length=\"00:03:32\" unsID=\"-1\"" http://chunks.ihrhls.com/1469/spXO68wER45-301029-9984.aac #EXTINF:10,title="Dark Horse",artist="Katy Perry / Juicy J",url="song_spot=\"M\" MediaBaseId=\"1971116\" itunesTrackId=\"0\" amgTrackId=\"-1\" amgArtistId=\"0\" TAID=\"35141\" TPID=\"23894643\" cartcutId=\"0729388001\" amgArtworkURL=\"http://assets.iheart.com/images/1080/MI0003667474\" […]

同时播放两个AVPlayeraudio文件时出现audio故障

我有一个iOS应用程序,用一个AVPlayer播放背景音轨,并用另一个AVPlayer播放其他声音片段。 (声音剪辑是从互联网stream传输的,因此需要AVPlayer。)问题是,当第二个AVPlayer开始播放时,它会导致后台AVPlayer停止几分之一秒,类似于此评论中所描述的内容: 用AVPlayer播放多个audio文件 我正在准备这个方法的audio剪辑: – (void)prepareAudio:(NSURL *)assetURL { asset = [AVURLAsset URLAssetWithURL:assetURL options:nil]; playerItem = [AVPlayerItem playerItemWithAsset:asset]; [player replaceCurrentItemWithPlayerItem:playerItem]; [playerItem addObserver:self forKeyPath:@"playbackBufferEmpty" options:NSKeyValueObservingOptionNew context:nil]; [playerItem addObserver:self forKeyPath:@"playbackLikelyToKeepUp" options:NSKeyValueObservingOptionNew context:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerItemDidReachEnd:) name:AVPlayerItemDidPlayToEndTimeNotification object:[player currentItem]]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerItemFailedToReachEnd:) name:AVPlayerItemFailedToPlayToEndTimeNotification object:[player currentItem]]; } …然后调用[player play]; 当我想听到每个声音。 当我设置AVPlayer的audio会话或每个实例时,是否有需要做的事情,以便声音混合没有毛刺?

AVPlayervideo空白,但听到声音

我从MPMoviePlayerController切换到AVPlayer因为我需要更好地控制video交换。 我用MPMoviePlayerController播放的.mov文件MPMoviePlayerController不错,但在切换到AVPlayer后,我听到video中的audio,但video只是显示了我添加了AVPlayerLayer的视图背景。 以下是我如何初始化AVPlayer 。 self.player = [[AVPlayer alloc] initWithURL:video]; AVPlayerLayer* playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player]; playerLayer.frame = self.playerContainer.bounds; [self.playerContainer.layer addSublayer:playerLayer]; 后来我只是发一个。 [self.player play]; 当video播放时,我听到audio,但看不到video。 我也尝试将zPosition设置为不幸。 playerLayer.zPosition = 1;

AvAudioSession不能在iOS7中工作?

#import "SctreamAudioViewController.h" #import <AVFoundation/AVFoundation.h> #import "SecondViewController.h" @interface SctreamAudioViewController () @property (nonatomic, strong) AVPlayer *player; @end @implementation SctreamAudioViewController #define STREAM @"http://localhost/audio.mp3" – (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. AVAudioSession *audioSession = [AVAudioSession sharedInstance]; [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker error:nil]; [audioSession setActive:YES error:nil]; NSURL *url = [[NSURL alloc] […]

恢复AVPlayerstream播放的最后一个示例

我正尝试使用本地播放器(AVPlayer)在iOS上重现实时stream。 但是,我无法恢复播放。 停止播放并在几秒后恢复播放时,播放将从暂停的那一刻开始,而不是再现实时stream的当前(最后一个)样本。 有没有办法得到最后一个样品,oconfigurationAVPlayer从最后一个样品点击播放button时重现?

无法通过AVPlayer通过HTTP播放mp3文件

我试图通过AVPlayer播放MP3文件: let url = URL(string: "http://transom.org/wp-content/uploads/2004/03/stereo_40kbps.mp3?_=7")! let asset = AVURLAsset(url: url) let item = AVPlayerItem(asset: asset) let player = AVPlayer(playerItem: item) player.play() 但是我得到下一个日志: 2017-09-26 21:57:07.906598+0300 MyApp[7558:1177816] CredStore – performQuery – Error copying matching creds. Error=-25300, query={ class = inet; "m_Limit" = "m_LimitAll"; "r_Attributes" = 1; sync = syna; } 我想这是因为iOS 11和Xcode 9,但我不知道如何解决这个问题。