Tag: avaudiorecorder

iOS:如何修剪.aif录音的开始和结束的沉默?

我的应用程序包括用户录制短信的function; 我想从logging的开始和结束中删除任何沉默(或者,更确切地说,音量低于给定阈值的任何audio)。 我正在使用AVAudioRecorder录制audio,并将其保存为.aif文件。 我在其他地方已经看到了一些方法,我可以等待开始logging,直到audio电平达到阈值; 那会让我在一半的地方,但不会有助于修剪沉默。 如果有一个简单的方法来做到这一点,我将永远感激! 谢谢。

iOS 7 M4A到MP3编码 – 这是可能的吗?

我已经搜遍了所有的互联网,并没有find明确的答案在我的问题 – 你如何logging一个m4a文件(因为这个答案表明 iOS不支持MP3录音),然后将其转换为mp3 ? 录制一个audio文件似乎是小菜一碟,但随后恶梦开始了。 这是2013年左右,我还没有find任何在networking上这个程序的明确例子。 有些人说因为有些GPL许可证, 你不能这样做 。 其他人build议使用苹果的例子 ,永远不会提到MP3! SO还有一个着名的问题 ,可以追溯到2009年的答案之一 – iOS上没有区别:App Store应用程序不允许加载dylib。 在iOS上实际的LAME库也很麻烦 – 这个问题的评论意见是人们在iOS 6及以上编译时遇到麻烦。 在开放的iOS 7中,我想再次提出这个问题 – 是否有任何一个示例项目的例子,我可以发现, 实际上在iOS设备上处理MP3转换? 请注意,这个问题不是上述问题的重复,只是为了澄清事情。 最后,这一切都涉及到最后一个问题 – iOS的M4A到MP3转换可能吗?

我怎样才能获得我在iPhone录制的audio的时间?

我正在使用AVAudioRecorder录制audio,现在我想要获得录制audio的确切时间,我怎么能得到这个。 我试过这个: AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:avAudioRecorder.url options:nil]; CMTime time = asset.duration; double durationInSeconds = CMTimeGetSeconds(time); 但是我的timevariables返回NULL和durationInSeconds返回'南',这是什么意思南。 UPDATE user1903074答案已经解决了我的问题,但只是为了好奇,是没有AVAudioplayer任何方式做到这AVAudioplayer 。

使用AVAudioRecorder在后台录制语音

我试图用AVAudioRecorder在后台录制用户声音,但是每次我在调用recordForDuration方法的时候都得到NO 。 我添加“audio”到UIBackgroundModes但这没有帮助。 顺便说一下,一切工作完美的前景。 我正在使用这个代码初始化AVAudioRecorder : NSError* error; if (![[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryRecord error:&error]) { NSLog(@"Error while setting audio session category. Code – %d, description – \"%@\".", [error code], [error localizedDescription]); return; } NSURL* outputFileURL = [VKMFileSystemHelper uniqueFileInPath:[[VKMFileSystemHelper subdirectoryInsideLibrary:DIR_AUDIO] path] withExtension:@"m4a"]; NSDictionary* recordSettings = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithInt:kAudioFormatMPEG4AAC], AVFormatIDKey, [NSNumber numberWithInt:AVAudioQualityMin] , AVEncoderAudioQualityKey, [NSNumber numberWithInt:16] , […]

看似随机文件损坏使用AVAudioRecorder(有时文件不能播放) – iOS

在我正在开发的应用程序中,我或多或less地碰到了一堵砖墙。 在应用程序中,您可以input一个视图,在标准表视图中列出所有本地保存的audio文件。 从这里你可以点击它们来播放它们,或者点击下面的一个loggingbutton来创build一个新的logging,然后自动保存到应用程序沙箱中。 现在所有这些在大多数情况下都可以很好地工作。 我可以坐下来做录音,然后回放。 我可以一直坐下来testing,大约45分钟,没有任何问题。 然后突然在随机的时候,我会遇到一个非常奇怪的问题。 问题在于,logging器突然开始只保存无法播放的损坏文件,无论多长时间录制,其大小都是4096字节。 我以完全标准的方式使用AVAudioRecorder,如下所示: // Specific settings for the audio recording NSDictionary *recordSettings = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithInt:AVAudioQualityMin], AVEncoderAudioQualityKey, [NSNumber numberWithInt:8], AVEncoderBitRateKey, [NSNumber numberWithInt: 2], AVNumberOfChannelsKey, [NSNumber numberWithFloat:22000.0], AVSampleRateKey, nil]; NSError *error = nil; audioRecorder = [[AVAudioRecorder alloc] initWithURL:contentURL settings:recordSettings error:&error]; audioRecorder.delegate = self; 我开始这样的录音: if (!isRecording) { isRecording = […]

AVAudioRecorder不写出正确的WAV文件标题

我正在iPhone上使用AVAudioRecorder录制设备麦克风的audio,然后操作录制。 为了确保我正确地从文件中读取样本,我使用python的wave模块来查看它是否返回相同的样本。 但是,当试图打开由AVAudioRecorder保存的wav文件时,python的wave模块返回“fmt chunk和/或data chunk missing”。 这些是我用来logging文件的设置: [audioSettings setObject:[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey]; [audioSettings setObject:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey]; [audioSettings setObject:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey]; [audioSettings setObject:[NSNumber numberWithFloat:4096] forKey:AVSampleRateKey]; [audioSettings setObject:[NSNumber numberWithInt:1] forKey:AVNumberOfChannelsKey]; [audioSettings setObject:[NSNumber numberWithBool:YES] forKey:AVLinearPCMIsNonInterleaved]; [audioSettings setObject:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey]; 之后,我只是打电话recordForDuration实际上做logging。 录制成功 – 我可以播放文件等,我可以使用AudioFile服务读取示例,但是我无法validation它,因为我无法用Python的wave模块打开文件。 这是该文件的前128个字节的样子: 1215N:~/Downloads$ od -c –read-bytes 128 testFile.wav 0000000 RIFF x H 001 \0 WAVE fmt 0000020 […]

AVAudioRecorder swift 2

我有我的AVAudioRecorder工作,但自升级到AVAudioRecorder 2,我似乎无法弄清楚如何正确configuration它。 我不断收到一个错误说AVAudioRecorder初始值设定项不能被调用,但我提供的参数看起来是正确的。 var recordSettings = [AVSampleRateKey : NSNumber(float: Float(44100.0)), AVFormatIDKey : NSNumber(int: Int32(kAudioFormatMPEG4AAC)), AVNumberOfChannelsKey : NSNumber(int: 1), AVEncoderAudioQualityKey : NSNumber(int: Int32(AVAudioQuality.Medium.rawValue))] var recordingURL: NSURL? = nil var audioRecorder:AVAudioRecorder! func directoryURL() -> NSURL? { let fileManager = NSFileManager.defaultManager() let urls = fileManager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask) let documentDirectory = urls[0] as NSURL let soundURL = documentDirectory.URLByAppendingPathComponent("sound.m4a") return […]

在iOS中同时录制和播放audio

我正试图在录制的同时播放录制的内容。 目前我正在使用AVAudioRecorder进行录制, AVAudioPlayer进行播放。 当我试图同时播放内容时,没有任何东西在播放。 请find我正在做的伪代码。 如果我停止录音后一切正常,一切正常。 AVAudioRecorder *recorder; //Initializing the recorder properly. [recorder record]; NSError *error=nil; NSUrl recordingPathUrl; //Contains the recording path. AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:recordingPathUrl error:&error]; [audioPlayer prepareToPlay]; [audioPlayer play]; 你能请任何人让我知道你的想法或想法?

如何使用本地通知播放录制的声音?

我有一个应用程序,要求用户录制他们自己的消息,在未来的某个时间播放。 我的意图是使用UILocalNotification来做到这一点。 不幸的是,与本地notif相关联的声音似乎必须存储在主包中,但用户不能进行录制并将其保存在包中。 如何通过本地通知播放用户录制的声音文件? 另外 – 如果应用程序没有运行捕获本地通知(没有等待用户响应警报),然后播放所需的声音文件有没有办法? 谢谢!

AVAudioRecorder Record方法随机返回NO

我目前正在开发一款支持应用内audio录制的应用程序。 用户可以通过应用程序获得本地保存的audio文件的标准桌面视图,或者按下button进入新的录制视图,从那里可以录制新的audio会话,该会话将自动获得保存到应用程序沙箱。 现在这个function大部分时间都运行良好。 我可以录制新文件并从应用程序中播放它们,但随机时刻录音机将无法使用此方法开始录制: -(void) startRecording { if (!isRecording) { isRecording = YES; BOOL recordingSucess = [audioRecorder record]; if (recordingSucess) NSLog(@"WE STARTED THE RECORDING!"); else NSLog(@"WE DID NOT START THE RECORDING!"); // Start the timer recordTiming = [NSDate date]; timeCheck = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(timeCheck) userInfo:nil repeats:YES] } 也就是说,NSLog会打印出“我们没有开始logging”,表示没有开始logging。 这导致一个空的audio文件仍然被保存到应用程序与恒定的文件大小正好4096字节。 这是audiologging器对象如何初始化的: -(id) initWithContentURL:(NSURL *)contentURL { […]