2011-04-06 167 views
1

當我使用默認的OpenAL設置運行我的應用程序時,我可以看到它混合了44khz立體聲的聲音,這是我在控制檯(在iPhone 4上運行)中獲得的聲音:如何在iPhone上強制OpenAL混合單聲道

AudioStreamBasicDescription: 2 ch, 44100 Hz, 'lpcm' (0x00000C2C) 8.24-bit little-endian signed integer, deinterleaved 

由於性能問題,我希望OpenAL在22khz和單聲道中混合聲音。我假設這應該消耗更少的CPU。我設法強制OpenAL在22khz混音。以下是我如何做到的:

int params[3]; 
    params[0] = ALC_FREQUENCY; 
    params[1] = 22000; 
    params[2] = 0; 
    context = alcCreateContext(device, params); 

但是,我該如何強制OpenAL混合單聲道?我假設「2聲道」是指兩個聲道 - 立體聲。

回答

0

您無法控制OpenAL輸出的通道數量,但您可以簡單地使用單聲道數據作爲輸入。

一般來說,OpenAL不應該導致性能問題,除非在較舊的設備上,並且只有當您運行物理引擎或某物時一次播放20個或更多源。