2017-08-23 13 views
0

PHAssetsがイメージとビデオのジオロケーションを取得しようとしていますが、イメージのロケーションがフェッチされています。uiimagepickercontroller経由でビデオのジオロケーションを取得する方法

PHAsset.fetchAssetsWithALAssetURLs([imageUrl], options: opts). 

iは、ビデオのコードの下にそれを使用する場合、これはゼロに戻されます。

PHAsset.fetchAssetsWithALAssetURLs([videoUrl], options: opts) 
+0

ユーザーを取得し 'てみましょうビデオデータ=のNSDataしてみてください(contentsOfURL:videoDataURL、オプション:.DataReadingMappedIfSafeを)'。 – vaibhav

答えて

0

それはいくつかの調整との写真についても同様に動作するはずですので、これはビデオのためのiOS 8と作品上でテストされています。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

    NSURL *videoUrl = (NSURL *)[info objectForKey:UIImagePickerControllerMediaURL]; 
    NSString *moviePath = [videoUrl path]; 

    if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(moviePath)) { 

     ALAssetsLibrary *assetLibrary = [[ALAssetsLibrary alloc] init]; 

     [assetLibrary assetForURL:[info objectForKey:UIImagePickerControllerReferenceURL] resultBlock:^(ALAsset *asset) { 

      CLLocation *location = [asset valueForProperty:ALAssetPropertyLocation]; 
      NSLog(@"Location Meta: %@", location); 

     } failureBlock:^(NSError *error) { 
      NSLog(@"Video Date Error: %@", error); 
     }]; 

    } 

} 
+0

素早くPHAssetを通じて達成する方法 –

0

すべての動画Gelocation

PHPhotoLibrary.requestAuthorization { (status) -> Void in 
     let videosOption = PHFetchOptions() 
     videosOption.predicate = NSPredicate(format: "mediaType = %d", PHAssetMediaType.video.rawValue) 
     videosOption.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: true)] 
     let allVids = PHAsset.fetchAssets(with: videosOption) 
     for index in 0..<allVids.count { 
      //print Location here 
      print(allVids[index].location as Any) 
     } 

    } 
+0

私は選択したビデオの場所だけを取得したいと思います。どのように私は現在のchoosedインデックスを取得し、それぞれの資産の場所を得ることができますか? –

関連する問題