2016-04-20 26 views
2

私は今、UIActivityViewControllerを通じてPhasset(ビデオまたはイメージ)を共有しようとしています。UIActivityViewControllerを使用してPHAssetを共有するにはどうすればよいですか?

は、私の知る限り、私は配列へのURLを与え、

このような
[[UIActivityViewController alloc] initWithActivityItems:m_arryContents applicationActivities:nil]; 

を使用して、私のドキュメントディレクトリにある画像や動画を共有するために使用しかし、私はどのように私はphassetを共有することができないアイデアを持っていません。

ドキュメントフォルダにダウンロードまたはエクスポートすることなくフェセットを共有したいと考えています。

これを行う方法はありますか?

ありがとうございました。

+0

私のコードを試しましたか、それとも質問がありますか? - 私があなたを得たとき、私が使っているこのコードは、複数のPHAssetsを正確に共有しています(またはPHAssetsが表すイメージと正確に一致します) –

答えて

1

私は、次のメソッドを使用しています...) 画像のNSDataを共有してしまいました。

注: self.assetsFetchResults私は共有したいPHAssetsにアクセスすることにより、簡単なNSArrayのように、ここで使用さPHFetchResultsです。

注2: 私にはローカルイメージのみがあります。PHFetchResults!

+0

。画像の場合、それはうまくいくでしょうが、リストの動画の場合は、共有するためにエクスポートする必要があります。右? –

+0

はい、そうだと思います。元にNSURLを共有すると、期待どおりに動作しませんでした:( –

+0

http://stackoverflow.com/a/38167868/3718570 – Ptah

0

今のところ私はこれに対する解決策を見つけることができません。 Ricoh thetaとGoProギャラリーでは、このような理由で複数共有はできません。たぶんアップルはギャラリーでのみマルチ共有を許可しているかもしれない。

誰かが解決策を見つけた場合は、私を共有してください。ありがとう。

NSArray *selectedIndexPaths = [self.collectionView indexPathsForSelectedItems]; 

NSMutableArray *activityItems = [NSMutableArray array]; 

// image Loader 
PHImageManager *im = [PHImageManager defaultManager]; 
PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init]; 
options.synchronous = YES; 
options.version = PHImageRequestOptionsVersionCurrent; 
options.deliveryMode = PHImageRequestOptionsDeliveryModeOpportunistic; 
options.resizeMode = PHImageRequestOptionsResizeModeNone; 

for (NSIndexPath *index in selectedIndexPaths) 
{ 
    // load image 
    [im requestImageDataForAsset:self.assetsFetchResults[index.item] options:options resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) 
    { 
     [activityItems addObject:imageData]; 
    }]; 
} 

UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil]; 
// prevent sharing to gallery again 
activityVC.excludedActivityTypes = @[UIActivityTypeSaveToCameraRoll]; 

まず私は、ファイルにNSURLを使用しようとしましたが、これは例えばメールは動作しませんでした(すべての株式拡張子では動作しませんが、IMessageがでました:

関連する問題