Tag: avfoundation

AVFoundation可以强制播放本地.ts文件吗?

很显然,AVFoundation(和QuickTime X)可以解复用并正确播放.ts容器,因为.ts容器支持HTTPS直播。 设置一个本地web服务来服务.m3u8和相关的.ts文件,我真的很希望能够:说服AVURLAsset和/或URLAssetWithURL接受本地文件.m3u8 URI,就像它是一个HTTP URI,或者更好的是,能够使用AVQueuePlayer来加载和播放一系列.ts文件,而无需跳过直播的AVQueuePlayer 。 我想这样做的原因是,我需要在某种程度上零星地在本地生成电影资产 – 整个资产将不会一次提供,而是随着时间的stream逝而产生。 显然,这适用于AVQueuePlayer但由于各种原因,我的资产片段被打包在.ts容器中。 这听起来像是“本地”直播的完美select。 我怀疑URLAssetWithURL会对传递给它的string进行一些限定,然后设置一些属性来表明它正在查看一个实时stream媒体源,这个媒体stream反过来告诉AVPlayer / AVQueuePlayer期望以.tsformsAVQueuePlayer音轨。 它可能会看到HTTP,并决定这是直播。 所以我的问题是:如何“愚弄”AVFoundation到处理一个本地.m3u8文件完全一样远程? 奖金的问题是:有没有人(如果是这样的话)能够从.ts文件创buildAVAsset ,以便资产返回资产轨道的状态(准备播放)? TIA!

我如何从UIImage中提取AVMetadataObject?

我想使用iOS 7的新的条形码扫描function与UIImage而不是从一个设备的相机实时捕捉。 我已经有一个AVCaptureDeviceInput检测工作正常。 我认为这样做的最好方法是创build一个AVCaptureInput的具体子类,它从UIImage向AVCaptureSession提供媒体数据。 但是,我无法find任何有关如何子类AVCaptureInput文档或示例,所以我很茫然。 另一种方法是从现有的AVCaptureDeviceInput覆盖媒体stream,但由于这些API是私有的,我想在App Store上发布我的应用程序,这并不理想。 最终,我可能会用ZXing或者ZBar这样的第三方条码库来完成这个工作,但是在这里不能使用苹果的内置function似乎是一种浪费。

连续调用startRecordingToOutputFileURL:

苹果文件似乎表明,在录制video到一个文件,应用程序可以更改没有问题的url。 但是我看到一个问题。 当我尝试这个时,logging委托被调用一个错误… 手术无法完成。 (OSStatus错误-12780。)信息字典是:{AVErrorRecordingSuccessfullyFinishedKey = 0; } (在“不能”的时髦单引号来自日志logging[错误localizedDescription]) 这里的代码,基本上是WWDC10 AVCam示例的调整: 1)开始录制。 启动计时器每隔几秒更改输出URL – (void) startRecording { // start the chunk timer self.chunkTimer = [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(chunkTimerFired:) userInfo:nil repeats:YES]; AVCaptureConnection *videoConnection = [AVCamCaptureManager connectionWithMediaType:AVMediaTypeVideo fromConnections:[[self movieFileOutput] connections]]; if ([videoConnection isVideoOrientationSupported]) { [videoConnection setVideoOrientation:[self orientation]]; } if ([[UIDevice currentDevice] isMultitaskingSupported]) { [self setBackgroundRecordingID:[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{}]]; […]

iPhone 7 Plus – AVFoundation双摄像头

目前我正在积极研究这个问题,但是现在iPhone 7 Plus具有双摄像头系统,AVFoundation能够让您同时处理每个特定摄像头的video帧吗? 我想/我希望能够处理来自两个AVCaptureDevice实例的输出,同时给定一个位置。

在iOS 5中使用AVFoundation设置最大帧速率

我相信这曾经与captureOutput.minFrameDuration完成。 但是,这在iOS 5中已被弃用。 相反,我显然需要使用AVCaptureConnection的video.minFrameDuration 。 所以我有我的input,我的输出,我把他们两个捕获会话 – 我在哪里可以访问捕获连接? 我认为这是为会议创造的,但是在哪里? 我可以尝试使用addInputWithNoConnections和addOutputWithNoConnections添加I / O,然后可能手动创build连接。 但是,为了设置最大帧速率,这似乎有点麻烦。 另外,Xcode抱怨这些方法不存在。

如何在Swift 2 / AVPlayer中恢复背景audio?

我正在学习Swift作为我的第一个编程语言。 我努力了好几个小时才能恢复中断后的后台audio播放 (如通话) 应该发生什么: audio继续播放时,应用程序去背景(作品) 当被打电话中断时,得到中断通知开始(工作) 当通话结束时,获取中断通知(工作) 继续播放audio( 不工作 – 听不到 ) 真的很感谢任何帮助! 谢谢 笔记: 该应用程序已注册后台audio,播放罚款之前中断 我尝试过,没有时间延迟来重新开始游戏,但都没有成功 码: import UIKit import AVFoundation var player: AVQueuePlayer! class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() do { try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback) try AVAudioSession.sharedInstance().setActive(true, withOptions: .NotifyOthersOnDeactivation) } catch { } let songNames = ["music"] let songs = songNames.map { […]

在iOS中裁剪和修复video方向

我使用UIImagePickerController捕捉video,我可以使用下面的代码裁剪video, AVAsset *asset = [AVAsset assetWithURL:url]; //create an avassetrack with our asset AVAssetTrack *clipVideoTrack = [[asset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0]; //create a video composition and preset some settings AVMutableVideoComposition* videoComposition = [AVMutableVideoComposition videoComposition]; videoComposition.frameDuration = CMTimeMake(1, 30); //here we are setting its render size to its height x height (Square) videoComposition.renderSize = CGSizeMake(clipVideoTrack.naturalSize.height, clipVideoTrack.naturalSize.height); //create a video […]

旋转videow / AVMutableVideoCompositionLayerInstruction

我正在使用前置摄像头在iPhone 4上拍摄video,并将video与其他媒体资源相结合。 我希望这个video是纵向的 – 所有video的默认方向是横向,在某些情况下,您必须手动pipe理。 我正在使用AVFoundation,特别是AVAssetExportSession AVMutableVideoComposition。 根据WWDC的video,很明显,当我将video合成为新的作品时,我必须自己处理“修复”方向。 所以,我创build了一个AVMutableVideoCompositionLayerInstruction附加到我的AVMutableVideoCompositionInstruction,我使用setTransform:atTime:方法来设置一个转换devise旋转video: AVMutableVideoCompositionLayerInstruction *passThroughLayer = [AVMutableVideoCompositionLayerInstruction videoCompositionLayerInstructionWithAssetTrack:videoTrack]; CGAffineTransform portraitRotationTransform = CGAffineTransformMakeRotation(degreesToRadians(90.0)); [passThroughLayer setTransform:portraitRotationTransform atTime:kCMTimeZero]; 问题是,当我查看导出的video时,屏幕上没有任何实际的内容。 如果我将旋转angular度减小到45度,我可以在屏幕上看到部分video,就好像它不在中心点旋转一样。 我在下面列出了一些图片,以便更清楚我在说什么。 video的自然大小回到480×360。 我已经尝试将其改为360×480,并且不会影响核心问题。 0度旋转: 45度旋转: 90度旋转只是全部绿色。 无论如何,我希望以前做过这个的人能指点我的方向。 我无法findAVFoundation组合和导出中某些更高级主题的任何文档。

如何将静止图像添加到AVComposition?

我有一个AVMutableComposition与一个video轨道,我想添加一个静态图像到video轨道,以显示一段时间。 静止图像只是一个PNG。 我可以加载图像作为资产,但这是关于它,因为生成的资产没有任何轨道,因此不能使用insertTimeRange…方法插入。 有没有办法将静止图像添加到作品? 看起来答案是在Core Animation的某个地方,但是整个事情似乎高于我的头,我将不胜感激代码示例或一些信息指针。

audio播放在Swift中作为UISlider进展

我已经看到了一些关于在Objective-C中完成这个任务的post,但是我一直无法通过Swift做同样的事情。 具体来说,我不知道如何在下面实现addPeriodicTimeObserverForInterval 。 var player : AVAudioPlayer! = nil @IBAction func playAudio(sender: AnyObject) { playButton.selected = !(playButton.selected) if playButton.selected { let fileURL = NSURL(string: toPass) player = AVAudioPlayer(contentsOfURL: fileURL, error: nil) player.numberOfLoops = -1 // play indefinitely player.prepareToPlay() player.delegate = self player.play() startTime.text = "\(player.currentTime)" endTime.text = NSString(format: "%.1f", player.duration) } else { player.stop() } […]