小编bro*_*och的帖子

在循环声音时,OpenAL会出现故障

我正在使用openAL为我的游戏播放声音,我遇到了一些问题,有时在循环播放时会出现小故障.也没有循环我得到一个小流行...有时但不是全部.

我认为这与缓冲区有点太长有关,所以最后会有一些未定义的数据.我只是无法弄清楚如何改变这一点.我正在使用此功能加载一个caf文件:

void* MyGetOpenALAudioData(CFURLRef inFileURL, ALsizei *outDataSize, ALenum *outDataFormat, ALsizei *outSampleRate, ALdouble *duration) {
OSStatus                        err = noErr;    
SInt64                          theFileLengthInFrames = 0;
AudioStreamBasicDescription     theFileFormat;
UInt32                          thePropertySize = sizeof(theFileFormat);
ExtAudioFileRef                 extRef = NULL;
void*                           theData = NULL;
AudioStreamBasicDescription     theOutputFormat;

// Open a file with ExtAudioFileOpen()
err = ExtAudioFileOpenURL(inFileURL, &extRef);
if(err) { printf("MyGetOpenALAudioData: ExtAudioFileOpenURL FAILED, Error = %ld\n", err); goto Exit; }

// Get the audio data format
err = ExtAudioFileGetProperty(extRef, kExtAudioFileProperty_FileDataFormat, &thePropertySize, &theFileFormat);
if(err) { printf("MyGetOpenALAudioData: ExtAudioFileGetProperty(kExtAudioFileProperty_FileDataFormat) FAILED, Error = %ld\n", …
Run Code Online (Sandbox Code Playgroud)

iphone openal ios

6
推荐指数
1
解决办法
1078
查看次数

标签 统计

ios ×1

iphone ×1

openal ×1