objective C语言 objective音频流在iphone



我正在使用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:]: Could not open url some url/somefile.cgi(错误码0xffffffd5: Unknown ext audio Error)

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

我无法播放。cgi文件,谁能告诉我如何在iphone中播放。cgi文件

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

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

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

为什么你调用bufferFromUrl和bufferAsyncFromUrl?

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

buffer = [[[OpenALManager sharedInstance] bufferFromFile:@"caf")保留);ng

最新更新