2009-11-10 6 views
3

, но я хочу халявные видео с URL и переименовать файл этого видео перед сохранением it.i использовать UISaveVideoAtPathToSavedPhotosAlbum? Любую help..what я должен делать?переименование файла с помощью UISaveVideoAtPathToSavedPhotosAlbum?

NSData *imageData = [NSData dataWithContentsOfURL:[NSURL 
URLWithString:@"www.xyz.com/image.mp4"]]; 

ответ

4

Вы бы сделать что-то вроде этого:

- (void) downloadVideo 
    NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.xyz.com/image.mp4"]]; 
    NSString *tempPath = [NSString stringWithFormat:@"%@/%@", NSTemporaryDirectory(), temp.mp4]; 
    [imageData writeToFile:tempPath atomically:NO]; 
    UISaveVideoAtPathToSavedPhotosAlbum (@ tempPath, self, @selector(video:didFinishSavingWithError: contextInfo:), nil); 
); 

- (void) video: (NSString *) videoPath 
    didFinishSavingWithError: (NSError *) error 
    contextInfo: (void *) contextInfo { 
    NSLog(@"Finished saving video with error: %@", error); 
} 

Есть две вещи, которые необходимо принять к сведению:

  1. Убедитесь, что вы указать схему URL. Это не браузер, он не собирается пытаться настроить HTTP и догадываться о вас.
  2. Если это основной поток, это вызовет синхронный ларек, когда произойдет dataWithContentsOfURL:. Если основной поток задержится более 20 секунд, телефон предположит, что приложение застряло в бесконечном цикле и убило его. Поэтому, если этот код находится в основном потоке, вам нужно либо переместить его на фоновый поток, либо перейти к асинхронной загрузке с использованием NSURLConnection.
+0

вы объявили NSData * ImageData, но вы не использовали it..and также вы сделали не упоминать, как изменить имя файла для сохранения? который лучше всего подходит для длительной видеоролики, пожалуйста, вы дадите какой-нибудь учебник сэр? –

+0

Вы правы, я прищурился, вам нужно сначала сохранить его в файл с помощью 'writeData: atomically:', я соответствующим образом изменил код. Лучший способ загрузить его - использовать NSURLConnection асинхронно, о чем я упоминал в ответе. Есть много примеров этого в Интернете и в других ответах SO. –

+0

ошибка возникает, как неявное объявление функции UISaveVideoAtPathToSavedPhotosAlbum ' –

0

У меня была такая же проблема, я решил сменить расширение файла, сохраненного с .mpg на .mp4. по-видимому, UISaveVideoAtPathToSavedPhotosAlbum ожидает правильное расширение, хотя из документации не ясно мне, что это требование:

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIKitFunctionReference/Reference/reference.html

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