gpt4 book ai didi

ios - 如何将 CoreData (NSManagedObject) 设置为 AvAudioRecorder 的目的地?

转载 作者:行者123 更新时间:2023-11-28 11:23:19 24 4
gpt4 key购买 nike

我可以通过什么方法将 NSManagedObject 设置为 AVAudioRecorder 的目标(相对于 NSURL)?我想将微小的声音片段保存为二进制核心数据类型,并选择“外部存储”选项……当然可以播放它们。我已经看到几个绕过这个主题的问题,似乎有一些正在这样做,但我还没有找到任何核心代码示例。到目前为止,我已经按照本教程成功录制了基本文件类型:http://www.supersuraccoon-cocos2d.com/2011/06/05/voice-record-demo/ ,我只想直接把它带到核心数据。

仅供引用 - 我确实意识到最佳做法是存储 URL,然后检索,但如果可能的话,我真的很想直接将二进制文件放入 CoreData。

谢谢!!

附注如果您有 Swift 示例,将不胜感激!

最佳答案

您需要将音频保存为 NSData。您需要将文件保存在磁盘中并转换为 NSData。

我有配置My Audio的功能,还有一秒转换的功能!!!

-(void)persistDataAudioPlaylet{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"myAudio.caf"];
NSData *fileContents = [NSData dataWithContentsOfFile:filePath];
self.playlet.sound = fileContents;
}


-(void)configureAudioRecord{
NSArray *dirPaths;
NSString *docsDir;

dirPaths = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = dirPaths[0];

NSString *soundFilePath = [docsDir
stringByAppendingPathComponent:@"myAudio.caf"];

NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];

NSDictionary *recordSettings = [NSDictionary
dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:AVAudioQualityMin],
AVEncoderAudioQualityKey,
[NSNumber numberWithInt:16],
AVEncoderBitRateKey,
[NSNumber numberWithInt: 2],
AVNumberOfChannelsKey,
[NSNumber numberWithFloat:44100.0],
AVSampleRateKey,
nil];

NSError *error = nil;

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord
error:nil];

self.audioRecorder = [[AVAudioRecorder alloc]
initWithURL:soundFileURL
settings:recordSettings
error:&error];

if (error)
{
NSLog(@"error: %@", [error localizedDescription]);
} else {
[self.audioRecorder prepareToRecord];
}
}

关于ios - 如何将 CoreData (NSManagedObject) 设置为 AvAudioRecorder 的目的地?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24957822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com