2009-09-04 34 views
10

Tôi đang viết một ứng dụng tải lên video đơn giản trên iPhone 3GS nơi tôi lần đầu tiên hướng người dùng đến album ảnh và sau đó chọn video để chia sẻ hoặc tải lên. Tôi đang sử dụng UIImagePickerController theo cách sau:UIImagePickerController cho phim Mục

videoPickerCtrl = [[UIImagePickerController alloc] init]; 
videoPickerCtrl.delegate = self; 
videoPickerCtrl.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
videoPickerCtrl.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:videoPickerCtrl.sourceType]; 

videoPickerCtrl.allowsImageEditing = NO; 
videoPickerCtrl.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie]; 
[window addSubview:videoPickerCtrl.view]; 

Nhưng tôi có thể thấy rằng một khi điều khiển được gọi, có một giao diện video cắt tỉa đáng lo ngại được trình bày. Khi tôi nhấn "chọn", video luôn được cắt bất kể tôi có chạm vào các điều khiển cắt tỉa hay không. Có cách nào để có được xung quanh giao diện cắt tỉa này và trực tiếp nhận được đường dẫn của tập tin video?

+0

allowImageEditing property Không được chấp nhận trong iOS 3.1 – kamleshwar

+0

nó chỉ mất thời gian để sao chép tệp vào thư mục tmp của sandbox của ứng dụng của bạn. bạn không được cung cấp tệp orignal, chỉ cần một bản sao ... để thanh tiến trình là os sao chép tệp. – n3wscott

Trả lời

2

Bạn nên đặt allowsEditing = NO; thay vì allowsImageEditing = NO; (đã không được chấp thuận trong 3.1). Sau đó, giao diện cắt tỉa sẽ không xuất hiện trừ khi phim được chọn dài hơn 10 phút (từ tài liệu: "Thời lượng phim tối đa là 10 phút. Nếu người dùng chọn phim dài hơn 10 phút, họ buộc phải cắt trước khi lưu nó. ").

1

Ok vì vậy tôi đã làm cho nó hoạt động lâu trở lại sau khi xem kỹ tài liệu SDK. Tôi có thể tải video từ thư mục Camera Roll trên 3GS của mình. Nhưng tôi không thể tìm thấy bất kỳ cách nào mà UIImagePickerController có thể chọn video từ các thư mục khác ngoài Camera Roll (ví dụ, Thư viện ảnh của thiết bị nơi người dùng đồng bộ video thông qua iTunes). Có cách nào tiêu chuẩn trong SDK để làm điều đó?

+0

Đây không phải là câu trả lời. – memmons

+0

chúng tôi biết rằng ok ?? – humblePilgrim

2

Sự cố thú vị. Đây chỉ là thông tin nếu có ai khác nhìn vào điều này. Trên hệ điều hành iPad 3.2 Tôi đã tìm thấy một số vấn đề khi truy xuất video, mặc dù trình chọn hoạt động và tôi có thể chọn video từ album chứ không chỉ từ cuộn camera.

Đây là mã frag làm việc của tôi

Cuộc gọi

NSArray *mediaTypesAllowed = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; 
    [picker setMediaTypes:mediaTypesAllowed]; 

    picker.delegate = self; 
    picker.allowsEditing = NO; 
    picker.wantsFullScreenLayout = YES; 
    if(!IsEmpty(self.editBackgroundPopover)){ 
     [self.editBackgroundPopover setContentViewController:picker animated:YES]; 
    } 

Và đây là phương pháp đại biểu

imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    [self.editBackgroundPopover dismissPopoverAnimated:true]; 

NSString* mediaType = [info objectForKey:UIImagePickerControllerMediaType]; 

    //not production code, do not use hard coded string in real app 
    if ([ mediaType isEqualToString:@"public.image" ]) {                           
     NSLog(@"Picked a photo"); 
    } 
    //not production code, do not use hard coded string in real app 
    else if ([ mediaType isEqualToString:@"public.movie" ]){ 
     NSLog(@"Picked a movie at URL %@", [info objectForKey:UIImagePickerControllerMediaURL]); 
     NSURL *url = [info objectForKey:UIImagePickerControllerMediaURL]; 
     NSLog(@"> %@", [url absoluteString]); 
    } 

    [[picker self] dismissModalViewControllerAnimated:YES]; 
} 

Tuy nhiên các URL của video mà tôi lấy từ bộ chọn có dạng

tệp:/lo calhost/private/var/mobile/Applications/C6FAC491-D27D-45A6-B805-951727ED2CEC/tmp/-Tmp-/trim.KOzqps.MOV

Vì vậy, có vẻ với tôi rằng video có thể được được xử lý thông qua mã trang trí ngay cả khi tôi chọn toàn bộ video. Cũng lưu ý rằng bộ phim, ban đầu của loại m4v khi tôi tải nó thông qua iTunes là loại MOV, đó là tất nhiên không thể phát trên thiết bị! Tôi đã thử phát URL nhưng tôi đã nhận được thông báo cho biết "Không thể phát loại phim này"

Tôi không hiểu Apple đang chơi gì ở đây, API dường như không thể sử dụng được như một cách tải và phát video từ thư viện ảnh.

Hy vọng IOS 4 sẽ sắp ra mắt nhiều hơn, nhưng đối với ứng dụng iPad của tôi, vẫn còn vài tháng nữa.

+0

sự cố không được giải quyết bởi iOS 4.2. Tôi vẫn nhìn thấy chúng.Bạn đã phát hiện ra bất kỳ cách nào để thực hiện công việc này? – SpaceDog

+0

Xin chào Guys có giải pháp nào cho điều này không? –

Các vấn đề liên quan