Tôi đang cố gắng để tạo ra hình thu nhỏ cho các tập tin video:Có thể làm cho AVURLAsset hoạt động mà không có phần mở rộng tệp không?
- (UIImage*) thumbnailForVideoAtURL: (NSURL*) videoURL
{
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:videoURL options:nil];
AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
CGImageRef imageHandle = [generator copyCGImageAtTime:kCMTimeZero actualTime:NULL error:NULL];
if (imageHandle) {
UIImage *frameImage = [UIImage imageWithCGImage:imageHandle];
CFRelease(imageHandle);
return frameImage;
} else {
return nil;
}
}
Việc nắm bắt được rằng các tập tin video được lưu trữ trong một content-addressable store và không có phần mở rộng. Điều này dường như ném AVURLAsset
tắt, như tài sản được tạo ra, nhưng khi đọc những hình ảnh khung tôi nhận được lỗi sau:
Error Domain=AVFoundationErrorDomain Code=-11828 "Cannot Open" UserInfo=0x167170 {NSLocalizedFailureReason=This media format is not supported., NSUnderlyingError=0x163a00 "The operation couldn’t be completed. (OSStatus error -12847.)", NSLocalizedDescription=Cannot Open}
Đây có phải là tài liệu hoặc đề cập ở đâu đó? Tôi không thể tin rằng tôi thực sự buộc phải chuyển thông tin định dạng tệp thông qua tên tệp. Đối số options
cho trình khởi tạo AVURLAsset
trông giống như một nơi tốt để cung cấp loại tệp, nhưng theo tài liệu thì dường như không có bất kỳ hỗ trợ nào cho điều đó.
PS. Tôi đã thử nghiệm mã, cùng một tệp với phần mở rộng chính xác sẽ tạo ra hình thu nhỏ tốt.
Bạn có thể cho tôi biết plz hay không. rằng làm thế nào u tạo liên kết cứng đến tập tin, thực sự tôi có một url video ống bạn và tôi phải tạo hình thu nhỏ của video đó bằng url của nó –
Ý của bạn là URL tệp cục bộ hoặc URL YouTube HTTP thông thường? URL tệp cục bộ có thể dễ dàng được liên kết cứng bằng cách sử dụng '[NSFileManager linkItemAtURL: toURL: error:]'. Tạo hình thu nhỏ từ URL video YouTube trên YouTube xứng đáng là [câu hỏi riêng] (http://stackoverflow.com/questions/ask), IMHO. – zoul
Vẫn không cố định trong iOS7 và '[[Phân bổ AVAudioPlayer] initWithContentsOfURL: url url: nil];' không có vấn đề với các tệp không có phần mở rộng –