Tag: avfoundation

同时下载和播放从多个URL拼凑在一起的歌曲

我有一个NSArray的string是URL。 数组中的每个URL都指向与歌曲的某个部分相关联的数据。 我可以使用下面的代码播放完整的歌曲,它将歌曲完全下载到单个文件,然后从该文件播放: // Get file path to store song locally NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *filePath = [NSString stringWithFormat:@"%@/temp.mp3", [paths objectAtIndex:0]]; // Remove current temp file and create a new one NSFileManager *fileManager = [NSFileManager defaultManager]; NSError *error; if ([fileManager fileExistsAtPath:filePath]) [fileManager removeItemAtPath:filePath error:&error]; [fileManager createFileAtPath:filePath contents:nil attributes:nil]; NSFileHandle *fileHandle = [NSFileHandle […]

从较小的尺寸(重新缩放)

我其实是在寻找的不仅仅是质量,而是使用AV基础将整个video调整到更高的分辨率。 我有一个320×240和176×144的mp4质量的video,我想resize为1280x720video,但AVAssetExportSession类不允许从较小的尺寸缩放video。

iOS忽略enqueueSampleBuffer,因为状态失败

当我从这里重新启动应用程序: https : //github.com/zweigraf/face-landmarking-ios相机的图片不会出现,并打印错误:“忽略enqueueSampleBuffer,因为状态失败”。 这个问题可能是在SessionHandler.swift的captureOutput中

iOS – 使用AVFoundation录制声音后的iPhone声音级别较低

我有一个应用程序,我正在其中的一个function是通过iPhone microphone录制声音,并能够播放给我。 问题:我logging后让我说,我说话,播放水平是非常低的。 现在我没有从AudioToolbox切换到AVFoundation ,这发生在切换后。 我是否需要在AVFoundation的音量参数中进行AVFoundation ? 我没有看到documentation任何documentation 。 我感谢任何帮助。

video暂停时,AVPlayer Fairplay HLS不会停止audio播放

尽pipe我试图只select与在线Fairplay Streaming相关的部分,而不是持久性/离线播放,但我正在使用Apple的Fairplay Streaming示例代码在https://developer.apple.com/streaming/fps/上使用Fairplay实现。 在下面的代码中,没有Fairplay的video播放/暂停/寻找正常,但是当我播放Fairplay保护的video时,只有video轨道的行为正确。 暂停播放不会停止audio播放,更改音轨不会停止以前的音轨,所以两个播放,也许寻找也不起作用。 除了这个帮助类以外,我还从Apple的FairPlay Streaming Server SDK的客户端示例代码中获得了AssetLoaderDelegate和AssetPlaybackManager ,我已经更新了代码来处理我们的DRM密钥的SPC / CKC供应商。 我是否想要实现代码的一些重要部分来处理FPSstream媒体的audio? 你能指点我正确的方向吗? 非常感谢。 class PlayHelper { static let shared = PlayHelper() fileprivate var playerViewController: PlayerViewController? init() { AssetPlaybackManager.sharedManager.delegate = self } // Play video without DRM func playVideo(from urlString: String, at context: UIViewController) { guard let videoURL = URL(string: urlString) else { Log.error("Video […]

Swift Video Resizer AVAsset

我有这个代码,将video的大小从1280 x 720调整到640 x 360,但是我想要resize而不用裁剪。 有没有办法做一个完整的调整不裁剪? 这是代码 class func resizer(inputURL : NSURL , completion: (outPutURL : NSURL?) -> Void ){ let videoAsset = AVAsset(URL: inputURL) as AVAsset let clipVideoTrack = videoAsset.tracksWithMediaType(AVMediaTypeVideo).first! as AVAssetTrack let composition = AVMutableComposition() composition.addMutableTrackWithMediaType(AVMediaTypeVideo, preferredTrackID: CMPersistentTrackID()) let videoComposition = AVMutableVideoComposition() videoComposition.renderSize = CGSizeMake(360,640) videoComposition.frameDuration = CMTimeMake(1, 30) let instruction = AVMutableVideoCompositionInstruction() […]

在iPhone上的耳机和扬声器之间切换

我正在尝试设置iPhone应用程序输出的audio路由。 我正在使用路由更改侦听器来检测何时audio路由已更改。 聆听者检测到这些变化,例如耳机插入和拔出的时间。 默认情况下,扬声器播放audio,然后插入耳机,并通过耳机传输audio。 从那里,即使路由更改侦听器正在检测它们,也不会发生任何更改。 任何帮助将非常感激。 NSError *sessionError = nil; [[AVAudioSession sharedInstance] setDelegate:self]; [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&sessionError]; UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord; AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory); AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof(sessionCategory), &sessionCategory); AudioSessionAddPropertyListener(kAudioSessionProperty_AudioRouteChange, RouteChangeListener, (__bridge void *)(self)); AudioSessionSetActive(YES); callback监听器: void RouteChangeListener( void *inUserData, AudioSessionPropertyID inPropertyID, UInt32 inPropertyValueSize, const void *inPropertyValue) { if (inPropertyID == kAudioSessionProperty_AudioRouteChange) { CFStringRef newRoute; UInt32 size […]

如何使用AVFoundation设置扫描绑定

我正在尝试我的iOS应用程序中的条形码扫描仪。 我已经成功实施了条码扫描器。 但目前条形码扫描仅以全屏显示。 但是我想要的是,应该全屏查看video,并且应该只扫描特定部分的条形码。 也就是说,如果条形码放在那个部分,那么只有它应该被显示。 以下是我目前的代码: session=[[AVCaptureSession alloc]init]; device=[AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; NSError *error=nil; input=[AVCaptureDeviceInput deviceInputWithDevice:device error:&error]; if (input) { [session addInput:input]; } else{ NSLog(@"Errod : %@",error); } output=[[AVCaptureMetadataOutput alloc]init]; [output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()]; [session addOutput:output]; output.metadataObjectTypes=[output availableMetadataObjectTypes]; prevLayer=[AVCaptureVideoPreviewLayer layerWithSession:session]; [prevLayer setFrame:self.view.bounds]; [prevLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill]; [self.view.layer addSublayer:prevLayer]; [session startRunning]; [self.view bringSubviewToFront:self.lblCode]; [self.view bringSubviewToFront:self.imgShade1]; [self.view bringSubviewToFront:self.imgShade2];

Swift:如何从AVFoundation拍摄的照片中删除EXIF数据?

我试图摆脱从AVFoundation拍摄的图片的EXIF数据,我怎么能在swift(2) 首选 ,Objective-C也可以,我知道如何将代码转换为swift。 为什么? 我已经完成了我的研究,并且我看到很多着名的社交媒体 (Reddit Source等等)为了身份识别和其他目的删除了EXIF数据。 如果您认为这是重复的post,请阅读我要求的内容并提供链接。 谢谢。

iPhone应用程序caching何时清除?

我正在开发一个应用程序,让用户在应用程序的Documents目录中录制语音(等等)。 但是当我录制声音时,我正在录制到应用程序的caching目录,然后在用户说“好的,保存这个”之后,我正在处理文档目录。 到目前为止所有这些工作。 但是,如果我尝试删除caching中的数据文件,或者当我尝试移动它,我遇到问题。 所以我的问题是,我应该把数据留在caching中,以便iOS将处理它,或者我需要手动删除caching中的文件。 如果是的话,我将如何去做。 这是我到目前为止的代码(这是行不通的) NSFileManager *fm = [NSFileManager defaultManager]; NSString *directory = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]; NSError *error = nil; BOOL success = [fm removeItemAtPath:[NSString stringWithFormat:@"%@%@", directory, currentEntry.audioFileURL] error:&error]; if (!success || error) { // it failed. NSLog(@"it failed to delete!!! %@ %@", error, [error userInfo]); } else { NSLog(@"Deleted… yipee… !!!"); […]