iPhone4, iOS 4.3.3, iOS SDK4.3MPMoviePlayerController - Thời gian luôn 0
Hi all,
tôi là tạo ra một tính năng upload video. Các video được truy xuất bằng UIImagePickerController và có thể được chụp bằng camera hoặc được chọn từ thư viện ảnh. Tôi có giới hạn ứng dụng trong thời lượng tối đa 60 giây. Đây có thể dễ dàng đạt được khi quay video bằng máy ảnh thông qua:
// Giới hạn video đến 60 giây
[chọn setVideoMaximumDuration: 60];
Tuy nhiên khi video được chọn từ thư viện ảnh cách duy nhất tôi thấy có được trong suốt thời gian qua là bất động sản thời gian MPMoviePlayerController như sau:
// MediaType có thể kUTTypeImage hoặc kUTTypeMovie.
NSString * mediaType = [info objectForKey: UIImagePickerControllerMediaType]; NSLog (@ "% @", loại phương tiện);
// nếu nó một bộ phim
if ([mediaType isEqualToString:(NSString*)kUTTypeMovie]) {
// get the URL
NSURL* mediaURL = [info objectForKey:UIImagePickerControllerMediaURL];
NSLog(@"%@",mediaURL);
// can use MPMoviePlayerController class to get duration
int duration = -1;
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL: mediaURL];
if (moviePlayer != nil) {
duration = moviePlayer.duration;
NSString *path = moviePlayer.contentURL;
[moviePlayer release];
}
tuy nhiên thời gian luôn là 0. Tôi biết các video có thời gian vì thời gian sẽ được hiển thị như một phần của phụ đề khi lựa chọn nó trong thư viện ảnh. Tôi hiểu rằng thời lượng có thể không phải lúc nào cũng có sẵn nhưng trong trường hợp này thời lượng được hiển thị trong lib ảnh. Tôi cũng kiểm tra thuộc tính contentURL và nó có giá trị tốt. Tôi có thể truy xuất tệp, nhận tệp của nó v.v. vì vậy tôi biết NSURL của tệp là tốt ...
Cảm ơn!
Bạn có thể lắng nghe cho MPMovieDurationAvailableNotification. Điều đó sẽ đòi hỏi bạn phải giữ cho moviePlayer xung quanh đủ lâu để có thể xác định thời lượng. Thư viện ảnh có thể sử dụng giá trị được lưu trong bộ nhớ cache. – omz
@imobilizer Nếu câu trả lời dưới đây giúp, vui lòng đánh dấu là được chấp nhận. – memmons