2011-01-20 6 views
3

Можем ли мы сохранить файл музыкальной библиотеки iPod (песня) в папку iPhone App? if Да Пожалуйста, предложите, как я могу это сделать?копировать музыку аудиофайла аудиофайла в папку приложения Iphone?

Пожалуйста, помогите

Благодарности

+1

Каким образом этот вопрос отличается от вашего последнего? http://stackoverflow.com/questions/4743959/how-to-import-music-file-from-iphone-music-library-to-iphone-app – spender

+0

Я использовал два способа, чтобы удерживать песню в data formate one i упоминание ниже – GhostRider

+0

@GhostRider Спасибо за ответ – ios

ответ

4

я показать аудио список на табличном, когда я нажимаю на аудио Tableview затем эту песню я держать в NSData для загрузки

-(void)startVideoStart:(NSNumber*)number 

{ 

    MPMediaItem *song = [miPodSongsArray objectAtIndex:[number intValue]]; 

    songTitle = [song valueForProperty: MPMediaItemPropertyTitle]; 

    NSURL *url = [song valueForProperty:MPMediaItemPropertyAssetURL]; 

    [NSThread detachNewThreadSelector:@selector(loadAudioInBackground:) toTarget:self withObject:url]; 

    [self performSelector:@selector(UploadSong:) withObject:songDict afterDelay:10]; 

} 

-(void)loadAudioInBackground:(NSURL*)url 

{ 

    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init]; 


    NSLog(@"%@",url); 

    AVURLAsset *songAsset = [AVURLAsset URLAssetWithURL: url options:nil]; 

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

    NSString *documentsDirectory = [paths objectAtIndex:0]; 

    NSLog (@"compatible presets for songAsset: %@",[AVAssetExportSession exportPresetsCompatibleWithAsset:songAsset]); 

    AVAssetExportSession *exporter = [[AVAssetExportSession alloc] 
             initWithAsset: songAsset 
             presetName: AVAssetExportPresetPassthrough]; 

    NSLog (@"created exporter. supportedFileTypes: %@", exporter.supportedFileTypes); 

    exporter.outputFileType = @"com.apple.m4a-audio"; 

    NSString *exportFile = [documentsDirectory stringByAppendingPathComponent: @"item.m4a"]; 

    NSError *error1; 

    if([[NSFileManager defaultManager] fileExistsAtPath:exportFile]) 
    { 

     [[NSFileManager defaultManager] removeItemAtPath:exportFile error:&error1]; 

} 

    NSURL* exportURL = [[NSURL fileURLWithPath:exportFile] retain]; 

    exporter.outputURL = exportURL; 

    // do the export 
    [exporter exportAsynchronouslyWithCompletionHandler:^{ 

     NSData *data1 = [NSData dataWithContentsOfFile: [documentsDirectory stringByAppendingPathComponent: @"item.m4a"]]; 

     //NSLog(@"%@",data1); 

     if (songDict) { 

      [songDict release]; 

      songDict=nil; 

     } 

     songDict= [[NSMutableDictionary alloc]init]; 

     [songDict setValue:data1 forKey:@"AudioData"]; 



     [songDict setValue:songTitle forKey:@"AudioName"]; 

     [songDict setValue:[[mAppDelegate.userInfoArray objectAtIndex:1]valueForKey:@"user_id"] forKey:@"user_id"]; 

     //NSLog(@"%@",infoDict); 

     mAppDelegate.uploadType = @"Audio"; 

     int exportStatus = exporter.status; 

     switch (exportStatus) { 

      case AVAssetExportSessionStatusFailed: { 

       // log error to text view 
       NSError *exportError = exporter.error; 

       NSLog (@"AVAssetExportSessionStatusFailed: %@", exportError); 

       //  errorView.text = exportError ? [exportError description] : @"Unknown failure"; 

       //errorView.hidden = NO; 

       break; 
      } 

      case AVAssetExportSessionStatusCompleted: { 

       NSLog (@"AVAssetExportSessionStatusCompleted"); 


       break; 
      } 

      case AVAssetExportSessionStatusUnknown: { NSLog (@"AVAssetExportSessionStatusUnknown"); 
break; 
} 
      case AVAssetExportSessionStatusExporting: { NSLog (@"AVAssetExportSessionStatusExporting"); 
break; 
} 

    case AVAssetExportSessionStatusCancelled: { NSLog (@"AVAssetExportSessionStatusCancelled"); 
break; 
} 

case AVAssetExportSessionStatusWaiting: { 
NSLog (@"AVAssetExportSessionStatusWaiting"); 
break; 
} 

     default: 
{ NSLog (@"didn't get export status"); 
break; 
} 
     } 

    }]; 

    [pool release]; 



} 
+0

Что это за элементы? 'miPodSongsArray',' songTitle' и 'songDict'? Нужно ли добавлять какие-либо рамки для 'AVAssetExportSession' и 'AVURLAsset'? – ios

+0

mipod songs array - это массив песен, которые в библиотеке ipod, songdict содержат данные для отправки в другой класс для синтаксического анализа, songtitle - это имя песни библиотеки ipod. и вы должны обладать активами – GhostRider

0

Пожалуйста, обратите внимание на TSLibraryImport Кроме того, он обрабатывает код AVAssetExportSession для вас.

Смежные вопросы