2015-12-26 3 views
0

J'essaie d'utiliser le code ci-dessous pour enregistrer un extrait de l'audio à partir d'un flux d'URL (par exemple, une station de radio diffusion):Objectif C/IOS - AVAsset - Erreur

float vocalStartMarker = 0.0; 
    float vocalEndMarker = 20.0; 

    NSURL *audioFileInput = [[NSURL alloc] initWithString: @"http://streamedaudio.mp3"]; 


    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsPath = [paths objectAtIndex:0]; //Get the docs directory 
    NSString *filePath = [documentsPath stringByAppendingPathComponent:@"TestName.m4a"]; //Add the file name 
    //[audioFileInput writeToFile:filePath atomically:YES]; //Write the file 
    NSURL *audioFileOutput = [[NSURL alloc] initWithString: filePath]; 
    NSLog(@"%@", audioFileOutput); 

    if (!audioFileInput || !audioFileOutput) 
    { 
     return NO; 
    } 

    [[NSFileManager defaultManager] removeItemAtURL:audioFileOutput error:NULL]; 
    AVAsset *asset = [AVAsset assetWithURL:audioFileInput]; 

    AVAssetExportSession *exportSession = [AVAssetExportSession exportSessionWithAsset:asset 
                      presetName:AVAssetExportPresetAppleM4A]; 

    if (exportSession == nil) 
    { 
     return NO; 
    } 

    CMTime startTime = CMTimeMake((int)(floor(vocalStartMarker * 100)), 100); 
    CMTime stopTime = CMTimeMake((int)(ceil(vocalEndMarker * 100)), 100); 
    CMTimeRange exportTimeRange = CMTimeRangeFromTimeToTime(startTime, stopTime); 

    exportSession.outputURL = audioFileOutput; 
    exportSession.outputFileType = AVFileTypeAppleM4A; 
    exportSession.timeRange = exportTimeRange; 

    [exportSession exportAsynchronouslyWithCompletionHandler:^ 
    { 
     if (AVAssetExportSessionStatusCompleted == exportSession.status) 
     { 
      // It worked! 
     } 
     else if (AVAssetExportSessionStatusFailed == exportSession.status) 
     { 
       NSLog(@"%@", exportSession.error); 
      return; 
     } 
    }]; 

Je reçois le texte suivant erreur:

26/12/2015 14: 17: 11,523 saveURL [4135: 24621] erreur de domaine = code AVFoundationErrorDomain = -11838 "opération Arrêtée" UserInfo = {NSLocalizedDescription = opération Arrêtée, NSLocalizedFailureReason = L'opération est prise en charge pour ce média.}

Est-ce parce que j'essaie de convertir un MP3 à M4A?

Merci d'avance pour votre aide avec ceci.

Répondre

0

La sécurité du transport d'application restreint les requêtes à HTTPS sauf si vous l'autorisez explicitement.

+0

Ah! N'a pas pensé à cela - je vais changer les paramètres maintenant. – Baz

+0

Salut à nouveau Paulvs. Je ne suis pas les problèmes: Paramètres de sécurité de transport App - Autoriser les charges arbitraires est défini sur «Oui». D'autres idées? – Baz

+0

Ok, quelle est votre URL actuelle? http: //streamedaudio.mp3 ne semble pas être valide. – paulvs