播放音频包含NSData

时间:2013-11-19 18:03:33

标签: iphone nsdata

获得歌曲的NSData后,我使用此代码播放音频,但不转换为NSString ..Null正在打印

NSString * urlString = [[NSString alloc] initWithData:self.audioSongData encoding:NSASCIIStringEncoding];

NSLog(@" url string is   %@",urlString);

NSURL *url = [[NSURL alloc] initWithString:urlString];
NSLog(@" url is %@",url);
NSData *wavDATA = [NSData dataWithContentsOfURL:url];
NSError *error;

avPlayer=[[AVAudioPlayer alloc] initWithData:wavDATA error:&error];
[avPlayer play];

1 个答案:

答案 0 :(得分:0)

如果数据在互联网上,请使用 [NSData dataWithContentsOfURL:url]是不够的。您必须执行HTTP请求才能获取数据,然后使用AVAudioPlayer播放它。

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"GET"];

NSHTTPURLResponse* urlResponse = nil;
NSError *error = [[NSError alloc] init];
NSData *wavDATA = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
if ([urlResponse statusCode] >= 200 && [urlResponse statusCode] < 300)
{
    avPlayer=[[AVAudioPlayer alloc] initWithData:wavDATA error:&error];
    [avPlayer play];
}

如果使用来自HTTP页面的GET检索音频数据,那么应该做你想要的。 请求代码也可以在此question中找到。希望这有帮助!