0

我正在使用 objectAL 流式传输 PCM 数据,

从我尝试或播放在线 CGI 流数据的示例代码中,

   ALSource *source = [[ALSource source] retain];

   ALBuffer *buffer = [[[OpenALManager sharedInstance] bufferFromUrl:[NSURL URLWithString:[[OpenALManager sharedInstance]bufferAsyncFromUrl:[NSURL URLWithString:@"someURL/somedata.cgi"] target:self selector:@selector(recievedBufferData:)]]] retain];

   source.position = alpoint(planet.position.x, planet.position.y, 0);
   source.referenceDistance = 50;
   [OpenALManager sharedInstance].currentContext.listener.position = alpoint(rocketShip.position.x, rocketShip.position.y, 0);

    self.isTouchEnabled = YES;
    [source play:buffer loop:YES];
}


-(void)recievedBufferData:(id)recievedData{
    NSLog(@"recieved");
}

我收到以下错误

OAL 错误: - [OALAudioFile initWithUrl:reduceToMono:]: 无法打开 url some url/somefile.cgi (error code 0xffffffd5: Unknown ext audio error)

但是方法 recievedBufferData: 只被调用一次

我无法播放 .cgi 文件,谁能建议我如何在 iphone 中播放 .cgi 文件。

4

1 回答 1

0

我正在尝试类似的东西,但无法解决它。

只是想问一下,我认为下面的代码行有一些错误?:

ALBuffer *buffer = [[[OpenALManager sharedInstance] bufferFromUrl:[NSURL URLWithString:[[OpenALManager sharedInstance]bufferAsyncFromUrl:[NSURL URLWithString:@"someURL/somedata.cgi"] target:self selector:@selector(recievedBufferData:)]]] retain];

为什么要调用 bufferFromUrl 和 bufferAsyncFromUrl?

顺便说一句,我可以使用本地文件完成这项工作:

缓冲区 = [[[OpenALManager sharedInstance] bufferFromFile:@"ColdFunk.caf"] 保留];ng

于 2011-07-22T04:46:45.637 回答