2011-07-05 45 views
0

我使用objectAL到流PCM数据,iPhone中的ObjectAL音频流?

从示例代码中,我曾尝试或玩网络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(错误代码0xffffffd5:未知的ext音频错误)

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

我无法播放.cgi文件,任何人都可以建议我如何在iphone中播放.cgi文件。

回答

0

我正在尝试somethign类似,但无法解决它。

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

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

你为什么打电话bufferFromUrl和bufferAsyncFromUrl?

BTW,我能够使用本地文件,使这项工作:

缓冲= [[[OpenALManager sharedInstance] bufferFromFile:@ “ColdFunk.caf”]保留]纳克

晴天
+0

嗨,我需要要将音频数据从远程URL加载到ALBuffer类,并使用它,您提供的代码是从本地资源文件夹加载音频文件。 – mac