3

从几天开始,我一直在寻找如何在 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);
    }
4

0 回答 0