iPhone上的OpenAL突然变得非常安静

iPhone上的OpenAL突然变得非常安静,iphone,ios,volume,openal,Iphone,Ios,Volume,Openal,正如标题所述,声音只会以可笑的安静音量播放。直到我听到最大音量时几乎听不见的声音时,我才觉得它根本没在播放 好几个星期了。没问题。突然,它不知从哪里开始这样做。我尝试过清理/重建、重新启动Xcode、重新启动设备等,但都没有解决问题。它会突然在一个随机构建中再次出现。这真的开始让我感到沮丧,我对使用OpenAL感到失望,因为这不是我使用它几周来遇到的第一个问题。我不能释放任何声音,有时可能会工作 我正在使用AVAudioPlayer同时播放背景音乐,而且没有任何问题 有人知道这是什么原因吗 针对

正如标题所述,声音只会以可笑的安静音量播放。直到我听到最大音量时几乎听不见的声音时,我才觉得它根本没在播放

好几个星期了。没问题。突然,它不知从哪里开始这样做。我尝试过清理/重建、重新启动Xcode、重新启动设备等,但都没有解决问题。它会突然在一个随机构建中再次出现。这真的开始让我感到沮丧,我对使用OpenAL感到失望,因为这不是我使用它几周来遇到的第一个问题。我不能释放任何声音,有时可能会工作

我正在使用AVAudioPlayer同时播放背景音乐,而且没有任何问题

有人知道这是什么原因吗

针对user1260708:

我的init方法如下所示

bool D2DSoundController::init(Map<D2DSound> *sounds) {
if (!_initialzed) {
    OSStatus result = AudioSessionInitialize(NULL, NULL, &_interruptionListener, (void*)_context);
    ulong cat = kAudioSessionCategory_MediaPlayback;
    result |= AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(cat), &cat);
    _sounds = sounds;
    _device = alcOpenDevice(0);
    if (_device != 0) {
        _context = alcCreateContext(_device, 0);
        if (_context != 0) {
            alcMakeContextCurrent(_context);
            alGenSources(_numSources, _sources);
            //alDistanceModel(AL_LINEAR_DISTANCE_CLAMPED);
            //alListener3f(AL_POSITION, 300.0f, 200.0f, 0.0f); --- I think this was the problem?
            _initialzed = true;

            return (alGetError() == 0 && result == 0);
        }
        return false;
    }
    return false;
}
return false;
boold2dsoundcontroller::init(映射*声音){
如果(!\u已初始化){
OSStatus结果=AudioSessionInitialize(NULL,NULL,&_interruptonListener,(void*)_context);
ulong cat=kAudioSessionCategory_MediaPlayback;
结果|=AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,sizeof(cat)和cat);
_声音=声音;
_设备=ALCOpendenice(0);
如果(_设备!=0){
_context=alcreatecontext(_设备,0);
如果(_context!=0){
alcMakeContextCurrent(_context);
阿尔及利亚资源(_numSources,_sources);
//距离模型(线性距离);
//alListener3f(AL_位置,300.0f,200.0f,0.0f)----我想这就是问题所在?
_初始化=真;
返回(alGetError()==0&&result==0);
}
返回false;
}
返回false;
}
返回false;
}

然而,我认为我发现了这个问题。在注释掉alListener3f调用后(刚刚注意到上面的行已经注释掉了一段时间),它似乎又开始工作了。我不明白为什么这突然成为一个问题,因为它一直存在;远程注意力对我来说也不太合适(因为那个电话最初是用来测试的),所以我决定总体上不使用它,但我想我忘了删除那条线路。 见这个问题:

任何关于注意力问题的意见(这似乎也是问题的根源)都会很好


正如我附带指出的,自从我放弃了注意力,我也一直在使用立体声,这不应该影响到这一点,所以我仍然感到困惑。

你能给我们提供一些代码吗?发布了。经审查,我认为我找到了原因,但仍不确定原因。