首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Novocaine :保存的音频文件不起作用

Novocaine :保存的音频文件不起作用
EN

Stack Overflow用户
提问于 2013-07-21 10:24:27
回答 1查看 486关注 0票数 1

我从Novocaine的示例项目中输出了一个m4a文件。但我无法在iTunes中打开该文件。文件可能已损坏。

代码语言:javascript
复制
NSArray *pathComponents = [NSArray arrayWithObjects:
                               [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject], 
                               @"My Recording.m4a", 
                               nil];
NSURL *outputFileURL = [NSURL fileURLWithPathComponents:pathComponents];
NSLog(@"URL: %@", outputFileURL);

self.fileWriter = [[AudioFileWriter alloc]
                   initWithAudioFileURL:outputFileURL 
                   samplingRate:self.audioManager.samplingRate
                   numChannels:self.audioManager.numInputChannels];


__block int counter = 0;
self.audioManager.inputBlock = ^(float *data, UInt32 numFrames, UInt32 numChannels) {
    [wself.fileWriter writeNewAudio:data numFrames:numFrames numChannels:numChannels];
    counter += 1;
    if (counter > 800) { // roughly 5 seconds of audio
        wself.audioManager.inputBlock = nil;
    }
};

我没有更改代码,只是删除了注释。

如果您知道可能的解决方案或建议,我想知道您是否可以与我分享。

诺沃卡因https://github.com/alexbw/novocaine

EN

回答 1

Stack Overflow用户

发布于 2013-11-20 13:37:17

这里讨论了这个问题:https://github.com/alexbw/novocaine/issues/59

原始代码使用下面这一行(在处理程序块中)结束记录:

代码语言:javascript
复制
wself.audioManager.inputBlock = nil;

我在后面紧跟着添加了下面这一行,让它正常工作:

代码语言:javascript
复制
[wself.fileWriter stop];

AudioFileWriter的stop方法是私有的,因此还需要将其添加到公共接口。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17768478

复制
相关文章

相似问题

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