問題タブ [photokit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - ユーティリティ ディスパッチ キューから PhotoKit を使用する際の問題
アプリがフォアグラウンドで実行されている間にアセットのバックグラウンド処理を実行しようとしていますが、メイン スレッドのパフォーマンスが低下し、優先順位が逆転するという問題が引き続き発生します。バックグラウンドで QOS_UTILITY dispatch_async 呼び出しを使用しています。私はそうしていますが、最終的にはrequestImageDataForAssetの呼び出し中にメインスレッドにコールバックするようです。
基になる PhotoKit ライブラリのコア データと関係があるようです。以下のメインスレッドを参照してください。すべての作業はバックグラウンドで実行する必要があります。「写真」と呼ばれるあらゆる場所。ユーティリティ スレッドに dispatch_async を配置しました。スレッドが QOS.UTILITY から QOS.DEFAULT へ、そしてメイン キューへと跳ね返る様子に注目してください。
requestImageDataForAsset からのコールバックで以下のリストを作成した後、コールバック (19 行目) で目的のキューに戻しましたが、メイン スレッドがあまりにも多くの作業を行っているか待機しているため、UI のパフォーマンスはまだ良くありません。これが私の最善の選択肢ですか、それともバックグラウンド スレッドでフォトキットを処理するためにできることはありますか?
photokit - PhotoKit: PHFetchOptions の includeAllBurstAssets が機能しない
PHFetchOptions の includeAllBurstAssets を使用しようとしています。私のカメラ ロールには、約 5 つのバースト アセットがあります (それぞれに約 10 枚の写真があります)。
カメラロールのアセットを列挙するには、次のことを行っています。
includeAllBurstAssets プロパティを NO または YES に設定すると、まったく同じ数のアセットが取得されます。includeAllBurstAssets が YES に設定されている場合、この数値はもっと高くなると予想していました。これはバグですか、それとも includeAllBurstAssets を間違った方法で解釈していますか。
ios - Photo Kit を使用してアルバムのポスター画像を取得するには?
アセット ライブラリを使用すると、アルバムのポスター画像を ALAssetsGroup から取得できます。Photos Framework (Photo kit) を使用して同じことを達成するにはどうすればよいですか?
ios - イメージにメタデータを適用すると、performChanges リクエストが失敗する
PhotoKit を使用して写真を編集していますが、元の写真のメタデータを保持する必要があります。そのために、メタデータを保存し、それを のoptions
パラメーターに提供しますCGImageDestinationAddImage
。ファイナライズしてディスクに正常に書き込むことはできますがperformChanges
、アセットの編集をコミットするために呼び出すと失敗します。代わりに私が提供すればnil
、options
それは成功します。ここで何がうまくいかないのですか?
エラーは次のとおりです。Error Domain=NSCocoaErrorDomain Code=-1 "The operation couldn’t be completed. (Cocoa error -1.)
cocoa - PHAssetCollection が最近削除されたコレクションかどうかを知る方法は?
最近追加されたコレクションのサブタイプがあります: PHAssetCollectionSubtypeSmartAlbumRecentlyAdded
。ただし
assetCollectionSubtype
、「最近削除された」コレクションを識別するものはありません。
これは、私の場合の「最近削除された」コレクションの説明です。
(iOS 8.1.3): DF876BFD-...-C97F4628467C/L0/040 Recently Deleted assetCollectionType=2/1000000201
これは、タイプが であることを示しますPHAssetCollectionTypeSmartAlbum
。しかし、 subtype とは一体何なの1000000201
でしょうか?
201
PHAssetCollectionSubtypeSmartAlbumPanoramas
ドキュメントに従っている必要があります。
マジックナンバー1000000201
は決して変わらないと信じられますか? おそらくそうではありません。
ただし、これは最近削除されたコレクションを取得する方法です。
この特定PHAsset
のスマート アルバムには大きな違いがあります。これはゴミ箱であるため、(再び) を削除することはできません。そのため、削除オプションをユーザーに提示する必要があるかどうかを知ることが不可欠です。
誰にもアイデアはありますか?
ios - URLで画像を保存中にPHPhotoLibraryエラーが発生しました
が提供する URL で画像を作成しますPHContentEditingOutput
。このようにデータをロードしUIImage
て保存すると、機能します。
しかし、URLでアプローチしようとすると失敗します:
エラー:
エラー Domain=NSCocoaErrorDomain Code=-1 "The operation could not be completed. (Cocoa error -1.)"
アップデート:
変更を保存しようとすると、同じエラーが発生します。
このメソッドはビデオ ( creationRequestForAssetFromVideoAtFileURL:
) では機能しますが、画像では機能しません。何が悪かったのか?