Как я могу использовать AVAssetExportSession для перезаписи песен в моей библиотеке iPhone / iPod? - PullRequest
0 голосов
/ 22 августа 2010

Итак, предположительно, в iOS 4 SDK вы можете редактировать и записывать в пользовательскую библиотеку iTunes. Я могу успешно загрузить AVAsset из библиотеки iPhone / iPod, но в качестве быстрого теста я пытаюсь сразу же перезаписать один и тот же файл, используя AVAssetExportSession, но он всегда возвращает статус «4», который я THINK AVAssetExportSessionStatusFailed ... В документации сказано:


enum {
    AVAssetExportSessionStatusUnknown,
    AVAssetExportSessionStatusExporting,
    AVAssetExportSessionStatusCompleted,
    AVAssetExportSessionStatusFailed,
    AVAssetExportSessionStatusCancelled,
    AVAssetExportSessionStatusWaiting
};

но в AVAssetExportSession.h написано:


enum {
    AVAssetExportSessionStatusUnknown,
    AVAssetExportSessionStatusWaiting,
    AVAssetExportSessionStatusExporting,
    AVAssetExportSessionStatusCompleted,
    AVAssetExportSessionStatusFailed,
    AVAssetExportSessionStatusCancelled
};
typedef NSInteger AVAssetExportSessionStatus;

Вот код, который я использую:



// before this, i'm using mpmediapicker to pick an m4a file i synched with my itunes library 

NSURL *assetUrl = [[self.userMediaItemCollection.items objectAtIndex: 0] valueForProperty: MPMediaItemPropertyAssetURL];
AVURLAsset *asset = [AVURLAsset URLAssetWithURL: assetUrl options: nil];
AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset: asset presetName: AVAssetExportPresetAppleM4A];
exportSession.outputURL = asset.URL;
exportSession.outputFileType = AVFileTypeAppleM4A;

NSLog(@"output filetype: %@", exportSession.outputFileType);
// prints "com.apple.m4a-audio"

[exportSession exportAsynchronouslyWithCompletionHandler: ^(void) {
    NSLog(@"status: %i for %@", exportSession.status, exportSession.outputURL);
    // prints "status: 4 for ipod-library://item/item.m4a?id=3631988601206299774"
}];

[exportSession release];

Так или иначе ... Я предполагаю, что это "не удалось" или "отменено". Кто-нибудь еще успешно писал в медиа-библиотеку?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 23 августа 2010

вы не можете писать в библиотеку itunes, только читать из нее сейчас.

0 голосов
/ 30 июня 2011
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
NSParameterAssert(library);
if ([library videoAtPathIsCompatibleWithSavedPhotosAlbum:[NSURL     fileURLWithPath:movieFileName]]) {
   [library writeVideoAtPathToSavedPhotosAlbum:[NSURL fileURLWithPath:movieFileName]     completionBlock:^(NSURL *assetURL, NSError *error){}];
}
[library release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...