从几天开始,我一直在寻找如何在 iPhone 上玩 ogg。但并不成功。我发现这篇文章指向precompiled-ogg-vorbis-libraries-for-ios,但我不知道如何使用这个框架或库。我是编码新手。我也找到了这篇文章 ,但它播放捆绑包中的 ogg 音频。我想从给定的网址播放,比如维基百科的音频。任何帮助都会很棒。谢谢
更新:
我找到了另一个可以在 iOS 中使用的库或文件,但是我仍然不知道如何在 Xcode 中使用。Sean Barrett 的 Ogg Vorbis I 音频解码器。任何想法如何使用它。
更新 2:
只是尝试使用它这样的东西,但输出文件没有声音。知道我哪里出错了。
NSString *file = @"http://upload.wikimedia.org/wikipedia/commons/b/b2/En-us-Pakistan.ogg";
NSURL *fileURL = [NSURL URLWithString:file];
NSData * data = [NSData dataWithContentsOfURL:fileURL];
unsigned char* array = (unsigned char*) [data bytes];
int len = [data length];
if (data != nil) {
NSLog(@"\nis not nil");
//NSString *readdata = [[NSString alloc] initWithContentsOfURL:(NSData *)data ];
stb_vorbis* Stream = stb_vorbis_open_memory(array, len, NULL, NULL);
if (Stream)
{
stb_vorbis_close(Stream);
//return true;
}
else
{
//return false;
}
}
Byte *byteData = (Byte*)malloc(len);
memcpy(byteData, [data bytes], len);
NSData *ddata = [NSData dataWithBytes:byteData length:len];
if (ddata == nil) {
NSLog(@"data nil");
}
else{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"wikiaudio"];
NSError *error;
if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
[[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error]; //Create folder if it doesn't already exist
NSString * filename = [@"hello" stringByAppendingString:@".mp3"];
NSString *filePath = [NSString stringWithFormat:@"%@/%@", dataPath,filename];
[ddata writeToFile:filePath atomically:YES];
NSLog(@"filepath %@", filePath);
}