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

时间:2012-03-25 03:07:38

标签: iphone ios volume openal

正如标题所述,声音将以可笑的静音音量播放。直到我听到最大声音几乎听不到声音时,我才认为它根本没有播放。

好几个星期都没问题。不是问题。突然间,它开始无处可去。我已经尝试过清理/重建,重新启动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;

}

但是,我想我发现了这个问题。在注释掉alListener3f调用之后(只是注意到它已经被注释了一段时间),它似乎再次起作用。我不明白为什么这突然成为一个问题,因为它一直存在;距离考试也不适合我(因为呼叫首先在那里进行测试),所以我总决定不使用它,但我想我忘了删除那条线。 请参阅此问题:Distance Attenuation with OpenAL on iPhone/iPod

关于注意问题的任何输入(这似乎也是这个问题的根源)会很棒!

正如我所注意的那样,由于我放弃了演绎,我也一直在使用立体声,这不应该影响它,所以我仍然感到困惑。

0 个答案:

没有答案