首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不播放AVAudioUnit的情况下保存混合文件?

如何在不播放AVAudioUnit的情况下保存混合文件?
EN

Stack Overflow用户
提问于 2016-01-25 06:35:43
回答 1查看 160关注 0票数 1

现在,我通过从AVAudioUnitEQ记录它来保存文件。

代码语言:javascript
复制
    [mainEQ installTapOnBus:0 bufferSize:0 format:[mainEQ outputFormatForBus:0] block:^(AVAudioPCMBuffer *buf, AVAudioTime *when){
        if(!recordIsGoing){
            [mainEQ removeTapOnBus:0];
        }
        else{
            [writeAudioFile writeFromBuffer:buf error:nil];
            //  NSLog(@"%lld", writeAudioFile.length);
        }
    }];

但是这种方法需要先前的文件回放。有办法保存混合文件而不播放吗?

UPD:我可以把AUAudioUnit.outputBusses接到mainEQ。现在的挑战是拿出数据,并希望这些数据将是我所需要的。

已解决:问题已由此答案 Can I use AVAudioEngine to read from a file, process with an audio unit and write to a file, faster than real-time?解决

EN

回答 1

Stack Overflow用户

发布于 2016-01-25 08:05:47

我认为您可以首先将数据转换为NSData并进行存储。当你拿回它的时候,你可以把它转换回来。

代码语言:javascript
复制
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:buf];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"yourfilename.dat"];

// Save it into file system
[data writeToFile:dataPath atomically:YES];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34986453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档