लगता ही मान्य तरीका PHImageManager
से AVAsset
अनुरोध करने के लिए है (एक समस्या, वीडियो है अगर बहुत बड़ा हो सकता है) की आवश्यकता है, और जांचें कि क्या लौटाई गई संपत्ति AVURLAsset
है।
[[PHImageManager defaultManager] requestAVAssetForVideo:videoAsset options:nil resultHandler:^(AVAsset *asset, AVAudioMix *audioMix, NSDictionary *info) {
if ([asset isKindOfClass:[AVURLAsset class]]) {
NSURL *URL = [(AVURLAsset *)asset URL];
// use URL to get file content
}
}];
यह धीमी गति वीडियो के साथ काम नहीं करेगा, क्योंकि AVComposition
बजाय AVURLAsset
दिया जाता है: इस मामले में सीधे URL फ़ाइल का उपयोग और बाइट्स का हिस्सा हैं उसे प्राप्त करने के लिए इस्तेमाल किया जा सकता है।
PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init];
options.version = PHVideoRequestOptionsVersionOriginal;
[[PHImageManager defaultManager] requestAVAssetForVideo:videoAsset options:options resultHandler:^(AVAsset *asset, AVAudioMix *audioMix, NSDictionary *info) {
if ([asset isKindOfClass:[AVURLAsset class]]) {
NSURL *URL = [(AVURLAsset *)asset URL];
// use URL to get file content
}
}];
और पूर्ण आकार छवि यूआरएल पाने के लिए: संभव समाधान PHVideoRequestOptionsVersionOriginal
वीडियो फ़ाइल संस्करण का उपयोग करने के लिए है
PHContentEditingInputRequestOptions *options = [[PHContentEditingInputRequestOptions alloc] init];
options.canHandleAdjustmentData = ^BOOL(PHAdjustmentData *adjustmentData) {
return YES;
};
[imageAsset requestContentEditingInputWithOptions:options completionHandler:^(PHContentEditingInput *contentEditingInput, NSDictionary *info) {
// use contentEditingInput.fullSizeImageURL
}];
असली डिवाइस –
तुलसी में काम नहीं, यह समाधान किसी भी समस्या के बिना हमारे लाइव अनुप्रयोग में प्रयोग किया जाता है। कृपया उस कोड का हिस्सा साझा करें जो अधिक जानकारी के लिए काम नहीं कर रहा है – f3n1kc
मेरे मामले में, मैंने बड़े वीडियो को अपलोड करने के लिए इनपुट स्ट्रीम के रूप में यूआरएल का उपयोग करने की योजना बनाई थी। लेकिन असफल रहा, क्योंकि उस धारा का 'हैबसाइट्स उपलब्ध' नहीं है। – Benson