Da es noch keine Möglichkeit gibt, die Komprimierung mit UIImagePickerController zu vermeiden, wollte ich einige Ideen einbringen, wie Sie Ihren eigenen Bilderwähler erstellen können, der eine Komprimierung vermeidet.
Dadurch wird der Zugriff auf die rohen Videodateien ermöglichen:
iOS 8
PHFetchResult *assetsFetchResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeVideo options:nil];
for (PHAsset *asset in assetsFetchResult) {
PHVideoRequestOptions *videoRequestOptions = [[PHVideoRequestOptions alloc] init];
videoRequestOptions.version = PHVideoRequestOptionsVersionOriginal;
[[PHImageManager defaultManager] requestAVAssetForVideo:asset options:videoRequestOptions resultHandler:^(AVAsset *asset, AVAudioMix *audioMix, NSDictionary *info) {
// the AVAsset object represents the original video file
}];
}
Blick auf die PhotoKit Dokumentation für Sammlungen (Momente) und andere Optionen zugreifen.
Hier ist eine Beispielanwendung von Apple PhotoKit verwenden, die modifiziert werden könnte, ein Foto-Picker zu sein: https://developer.apple.com/library/ios/samplecode/UsingPhotosFramework/Introduction/Intro.html
Hier ein Foto-Picker-Bibliothek auf GitHub ist die PhotoKit verwendet, die vielversprechend aussieht, da es Ihnen die PHAsset Objekte gibt für alle ausgewählten Bilder/Videos: https://github.com/guillermomuntaner/GMImagePicker
iOS 7 und unter
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
if (group) {
// If you want, you can filter just pictures or videos
// I just need videos so I do this:
[group setAssetsFilter:[ALAssetsFilter allVideos]];
[group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop){
if (asset){
// You can now add this ALAsset in your own video picker.
// Note that you can only access the ALAsset as long as
// you maintain a reference to the ALAssetsLibrary
// Or if you want to process the video, you can create an AVAsset:
NSURL *url = asset.defaultRepresentation.url;
AVAsset *videoAsset = [AVAsset assetWithURL:url];
}
}];
}
} failureBlock:^(NSError *error) {
NSLog(@"error enumerating AssetLibrary groups %@\n", error);
}];
haben noch keine Lösung für dieses gefunden. Hat jemand Ideen? – Avalanchis
Werfen Sie einen Blick auf meine Antworten unten.Es sieht nicht so aus, als könnten Entwickler die Komprimierung beeinflussen. – memmons
Avalanchis - dies wurde vor 2 Jahren beantwortet. Möglich, ein Akzeptieren zu bekommen? – memmons