3

数日から、iPhone で ogg をプレイする方法を探していました。しかし、成功していません。precompiled-ogg-vorbis-libraries-for-iosを指すこの投稿を見つけましたが、このフレームワークまたはライブラリの使用方法がわかりません。私はコーディングが初めてです。この投稿も見つけまし たが、バンドルから ogg オーディオを再生します。ウィキペディアのオーディオのように、特定の URL から再生したい。どんな助けでも素晴らしいでしょう。ありがとう

アップデート:

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