Tag: avfoundation

使用AVFoundation将自定义元数据添加到video

我想添加一些信息(元数据)的video。 我find了一种方法来检索元数据,但没有find任何设置或修改元数据的解决scheme。 我正在使用AVURLAsset , AVAssetWritter AVMutableComposition来创buildvideo。

更改AVCaptureDeviceInput导致AVAssetWriterStatusFailed

我试图改变相机视图Front和Back它工作正常。如果录像没有翻转与Pause/Record选项它工作正常。但如果我们Flip Camera View一次然后,进一步录制video不保存哪些线索到AVAssetWriterStatusFailed – The operation could not be completed 。 任何人都可以帮助我find我出错的地方吗? 以下是我的代码。 Camera.m – (void)flipCamera{ NSArray * inputs = _session.inputs; for ( AVCaptureDeviceInput * INPUT in inputs ) { AVCaptureDevice * Device = INPUT.device ; if ( [ Device hasMediaType : AVMediaTypeVideo ] ) { AVCaptureDevicePosition position = Device . position ; AVCaptureDevice * […]

AVPlayer反向播放

如何让AVPlayer对象反向播放其video内容? AVPlayerItem类有一个名为“reversePlaybackEndTime”的属性,这使我认为反向播放是可能的,但我似乎无法在文档中find任何有关实际操作的信息。

AVURLAsset无法加载远程文件

我有一个使用AVURLAsset的问题。 NSString * const kContentURL = @ "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"; … NSURL *contentURL = [NSURL URLWithString:kContentURL]; AVURLAsset *asset = [AVURLAsset URLAssetWithURL:contentURL options:nil]; [asset loadValuesAsynchronouslyForKeys:[NSArray arrayWithObject:tracksKey] completionHandler:^{ … NSError *error = nil; AVKeyValueStatus status = [asset statusOfValueForKey:tracksKey error:&error]; … } 在完成块中,状态是AVKeyValueStatusFailed,错误消息是“无法打开”。 我见过的所有例子,使用本地文件,所以也许有使用远程文件的问题… 问候,昆汀

iPhone 4 AVFoundation:同时捕捉前后相机

我想知道是否有可能使用AVFoundation框架同时捕获两个摄像头。 具体来说,我的问题是前后AVCaptureDevices是否可以同时活动。 目前我知道一个AVCaptureSession实例只能支持一个input(和输出)。 我创build了两个AVCaptureSessions,将前置摄像头设备连接到另一个,然后将会话的输出指向不同的SampleBufferDelegate函数。 我所看到的是一个委托function是活动几帧,然后另一个接pipe。 看起来好像AVFoundation以某种方式closures相机设备,如果另一个正在使用。 任何人都可以证实这一点,或分享他们在这个问题上的经 提前致谢

如何在Swift中从AVAudioPlayer获取locking屏幕/控制中心的audio控制

新的iOS开发,所以这里。 我有一个应用程序正在播放audio – 我正在使用AVAudioPlayer按名称加载应用程序的资产中的单个文件。 我不想查询用户的库,只有提供的文件。 很好,但是,我希望用户能够从locking屏幕暂停和调整音量。 func initAudioPlayer(file:String, type:String){ let path = NSBundle.mainBundle().pathForResource(file, ofType: type)! let url = NSURL(fileURLWithPath: path) let audioShouldPlay = audioPlaying() do{ try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback) try AVAudioSession.sharedInstance().setActive(true) let audioPlayer:AVAudioPlayer = try AVAudioPlayer(contentsOfURL: url) audioPlayer.volume = slider.value audioPlayer.numberOfLoops = -1 audioPlayer.prepareToPlay() if(audioShouldPlay){ audioPlayer.play() // let mpic = MPNowPlayingInfoCenter.defaultCenter() // mpic.nowPlayingInfo = [MPMediaItemPropertyTitle:"title", MPMediaItemPropertyArtist:"artist"] } […]

无法使用AVAssetExportSession修剪video

我想修剪video: -(void)trimVideo:(NSURL*)outputURL { //[[NSFileManager defaultManager] removeItemAtURL:outputURL error:nil]; AVURLAsset *asset = [AVURLAsset URLAssetWithURL:outputURL options:nil]; AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetLowQuality]; NSString * outputFilePath = NSHomeDirectory(); outputFilePath = [outputFilePath stringByAppendingPathComponent:@"Library"]; outputFilePath = [outputFilePath stringByAppendingPathComponent:@"temp.mov"]; NSURL * outputFileUrl = [NSURL fileURLWithPath:outputFilePath]; exportSession.outputURL = outputFileUrl; exportSession.shouldOptimizeForNetworkUse = YES; exportSession.outputFileType = AVFileTypeMPEG4; CMTime start = CMTimeMakeWithSeconds(1.0, 600); CMTime duration […]

如何使用AVFoundation设置逐帧生成video的方向?

我正在编写一个iPhone应用程序,它从摄像头获取video,通过一些OpenGL着色器代码运行它,然后使用AVFoundation将输出写入video文件。 该应用程序运行在lanscape方向(任一),因此所有录制的video应该是风景。 在开始录制以获得正确的video之前,我使用的当前代码是: [[self videoWriterInput] setTransform:CGAffineTransformScale(CGAffineTransformMakeRotation(M_PI), -1.0, 1.0)]; videoWriterInput是AVAssetWriterInput的一个实例,其目的是为了补偿OpenGL的景观模式和反思方向。 这会产生在Quicktime播放器上下载和播放时播放正确的video。 但是,如果将录制的video添加到iPhone照片库中,则缩略图可以正确显示,但如果手机处于横向模式,video将播放旋转90度。 如果手机处于肖像状态,video将正确播放,但会水平裁剪以适应纵向尺寸。 根据这个Apple技术笔记 ,我用于处理video帧的AVCaptureVideoDataOutput的捕获输出不支持设置video方向。 有没有人成功地logging了景观生成的video,可以添加到iPhone库,并在横向上正确播放,如果是这样的话?

AVAudioPlayer和AirPlay – 可能吗?

我试图确定是否可以使用AVAudioPlayer类切换AirPlay支持。 从我读到的: AirPlay是一项技术,可让您的应用程序将audio传输至Apple TV和第三方AirPlay扬声器和接收器。 AirPlay支持内置于AV Foundation框架和Core Audio框架系列。 您使用这些框架播放的任何audio内容自动符合AirPlay发行条件。 一旦用户select使用AirPlay播放audio,系统将自动路由该audio。 [ Ref ] 基于这个信息; 它应该与AVAudioPlayer一起工作,因为它是AVFoundation框架的一部分; 但我似乎无法find任何支持这一假设的文件。 我也发现一些文档说可以用MPMoviePlayerViewController完成: 使用AirPlay播放video的支持包含在MPMoviePlayerController类中。 此支持允许您在启用AirPlay的硬件(如Apple TV)上播放基于video的内容。 当活动MPMoviePlayerController对象的allowsAirPlay属性设置为YES且设备处于启用AirPlay的硬件范围内时,电影播放器​​向用户显示将video发送到该硬件的控件。 [ Ref ] 似乎这里有一些矛盾的信息。 有谁知道是否有可能使用AVAudioPlayer路由到AirPlay或我们被迫使用MPMoviePlayerController类? 非常感谢。

使用Swift在相机上设置相机焦点

在swift中使用相机的API似乎是一个不同的,我很难在一个点上集中相机。 当用户点击屏幕时,我想让相机专注于这一点 这是我的代码: func focusCamera(point:CGPoint) { var screenRect:CGRect = bounds var focusX = Float(point.x/screenRect.width) var focusY = Float(point.y/screenRect.height) _currentDevice.lockForConfiguration(nil) _currentDevice.setFocusModeLockedWithLensPosition(focusX) { time in self._currentDevice.unlockForConfiguration() } _currentDevice.setFocusModeLockedWithLensPosition(focusY) { time in self._currentDevice.unlockForConfiguration() } } 但它似乎没有工作。 任何build议都比欢迎!