首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码-40的ExtAudioFileRead崩溃

代码-40的ExtAudioFileRead崩溃
EN

Stack Overflow用户
提问于 2014-12-29 17:05:11
回答 1查看 199关注 0票数 0

我的应用程序在后台播放音乐。我在后台模式中有音频on,我的音频会话看起来如下:

代码语言:javascript
复制
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *err = NULL;
[audioSession setCategory:AVAudioSessionCategoryPlayback error:&err];
if( err ){
    NSLog(@"There was an error creating the audio session");
}
[audioSession setMode:AVAudioSessionModeDefault error:&err];
if( err ){
    NSLog(@"There was an error setting mote to the audio session");
}
[[AVAudioSession sharedInstance] setActive:YES error:&err];
if( err ){
    NSLog(@"There was an error setting mote to the audio session");
}

我通过AUGraph进行播放,它配置了两个节点:远程I/O和Mixer:

代码语言:javascript
复制
AudioComponentDescription outputcd;
outputcd.componentFlags        = 0;
outputcd.componentFlagsMask    = 0;
outputcd.componentManufacturer = kAudioUnitManufacturer_Apple;
outputcd.componentSubType      = kAudioUnitSubType_RemoteIO;
outputcd.componentType         = kAudioUnitType_Output;

// Multichannel mixer unit
AudioComponentDescription MixerUnitDescription;
MixerUnitDescription.componentType          = kAudioUnitType_Mixer;
MixerUnitDescription.componentSubType       = kAudioUnitSubType_AU3DMixerEmbedded;
MixerUnitDescription.componentManufacturer  = kAudioUnitManufacturer_Apple;
MixerUnitDescription.componentFlags         = 0;
MixerUnitDescription.componentFlagsMask     = 0;

另外,根据技术质量保证,我添加了

代码语言:javascript
复制
UInt32 maxFPS = 4096;
AudioUnitSetProperty(_mixerUnit, kAudioUnitProperty_MaximumFramesPerSlice,kAudioUnitScope_Global, 0, &maxFPS,sizeof(maxFPS));

但是仍然没有运气,我的应用程序一直在ExtAudioFileRead上崩溃,当我锁定iPhone时,它的渲染回调函数大约有10秒。有什么建议吗?值得一提的是,这个错误没有在ios 7上复制。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-09 16:05:37

问题是应用程序功能中启用了数据保护。因此,当设备被锁定时,文件被加密,无法在后台播放。所以坠毁了。更改音频文件的加密属性可以解决此问题。

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

https://stackoverflow.com/questions/27692994

复制
相关文章

相似问题

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