問題タブ [assetslibrary]
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.
iphone - ALAssetPropertyLocationは、3gsiPhoneのiOS4.0以降では機能しませんが、iPhone4では完全に機能します
(設定などから)位置情報サービスが有効になっているアプリがあり、ALAssetsLibraryを使用してデバイスからすべての写真を読んでいます。
iPhone4 iOS 4.2.1では完全に機能しますが、同じコードと同じアセットは、どの3gsのiOS(4.0から4.2.1まで)でも機能しません。
問題は、3gsで常に無効なCLLocationを取得することです。
iPhone4の同じ画像(両方のデバイスにコピーされた)でも有効なCLLocationが返されますが、3gsでは無効になります。画像画像自体は両方のデバイスで有効であり、CLLocationのみが無効です。クラッシュは発生せず、コードは無効なブロックにステップインしません。無効なCLLocationデータを除けば、すべて正常に機能します。
同じアセット、同じコード、同じiOSバージョン(4.2.1)の出力:
iPhone4:<+51.23816667、-0.57700000> +/- 0.00m(速度-1.00 mps /コース-1.00)@19/02/201101:59:28グリニッジ標準時
3gs:<nan、nan> +/- 0.00m(速度-1.00 mps /コース-1.00)@ 2011-02-19 01:20:35 +0000
(無効な場所の日付は現在の時刻であることに注意してください)
このようなCLLocationを取得しています:
ビューコントローラDidLoadで呼び出されたALAssetsLibraryコードは、次のようになります(完全に標準)。
最後に、ネイティブフォトアプリでは、写真は3gsの正しい場所に表示されるため、どこかにそのデータが必要です。どういうわけかそれを読み取れません。
それがデバイス(3gs)の問題であるかどうかは完全にはわかりませんが、通常は問題ではありません...
objective-c - iOS 4 アセット ライブラリの問題: NSMutableArray にはブロック内のデータが含まれていますが、ブロックの呼び出し後は空です
http://www.icodeblog.com/asset-libraries-and-blocks-in-ios-4/にある例を自分のアプリに取り入れようとしています。これは私がこれまでに持っているものです:
usingAssets を呼び出すたびに、フォト アルバムの最新のコンテンツをNSMutableArray* assets
. ViewController の ViewDidLoad でこれらすべてをまとめます。
これまでのところ、上記のリンクに示されている例に従っていると思います。問題は、UserTabBarController のスコープ内でassets.count
は 0 のままですが、ブロックのスコープ内ではカウントが増加していることを示し、両方の呼び出し間で持続することです (予想どおり)。私が奇妙だと思うのは、Asset count: 0 という行がログのかなり後で表示されるか、(ブロック内から呼び出される) アセットを表示する行がより早く表示されるはずだということです。
2011-02-21 14:22:59.140 iPCS[7219:207] 資産数: 0
2011-02-21 14:23:08.539 iPCS[7219:207] 資産数: 0
2011-02-21 14:14:03.363 iPCS[7139:207] アセットを参照: ALAsset - タイプ:写真、URL:{ "public.jpeg" = "assets-library://asset/asset.JPG?id=1000000001&ext =JPG"; }
2011-02-21 14:14:03.363 iPCS[7139:207] 資産数: 1
2011-02-21 14:14:03.365 iPCS[7139:207] アセットを参照: ALAsset - タイプ:写真、URL:{ "public.jpeg" = "assets-library://asset/asset.JPG?id=1000000002&ext =JPG"; }
2011-02-21 14:14:03.366 iPCS[7139:207] 資産数: 2
2011-02-21 14:14:03.367 iPCS[7139:207] AssetEnum: 結果 nil またはリストの
終わり
21 14:14:03.368 iPCS[7139:207] GroupEnum: グループ nil またはリストの終わり
2011-02-21 14:14:03.368 iPCS[7139:207] GroupEnum の資産数: 2
2011-02-21 14:14:03.370 iPCS[7139:207] アセットを参照: ALAsset - タイプ:写真、URL:{ "public.jpeg" = "assets-library://asset/asset.JPG?id=1000000001&ext =JPG"; }
2011-02-21 14:14:03.371 iPCS[7139:207] アセット数: 3
2011-02-21 14:14:03.373 iPCS[7139:207] アセットを参照: ALAsset - タイプ:写真、URL:{ "public.jpeg" = "assets-library://asset/asset.JPG?id=1000000002&ext =JPG"; }
2011-02-21 14:14:03.374 iPCS[7139:207] 資産数: 4
2011-02-21 14:14:03.374 iPCS[7139:207] AssetEnum: 結果 nil またはリストの
終わり
21 14:14:03.375 iPCS[7139:207] GroupEnum: グループ nil またはリストの終わり
2011-02-21 14:14:03.376 iPCS[7139:207] GroupEnum の資産数: 4
皆さんは何と言っていますか?
編集: さらにいくつかのテストを実行usingAssets
し、ビューのボタンを使用して呼び出すと、assets
配列が適切に設定されました! これは、読み込み時にviewDidLoad
、ブロックで見られるオブジェクトと、ブロックの呼び出しインスタンスで見られるオブジェクトとの間にある種の切断があることを意味します。なぜこの動作を示しているのか、誰にもアイデアがありますか?
編集 2: 1 週間以上コードをいじっていますが、NSArray アセットを取得してコンテンツを正確に表示することができません。ブロックが実行される順序に関連付ける必要があると判断しました。を呼び出すusingAssets
と、メソッド自体は完了しますが、ブロックはすぐには実行されません。したがって、メソッドをボタンに結び付けて、すぐに の内容を印刷するとします。assets
その内容は空です (ライブラリに 2 つの画像があります)。ボタンをもう一度クリックすると、コンテンツに 2 つのアイテムが表示されます。3 回クリックすると、4 と表示されます。制御がユーザーに返された後 (アプリケーション ループに戻る)、ブロックが実行されているように見えます。それらが存在するパスに基づいてそれらをロードしますが、期待どおりに動作しない理由を理解できる場合は、アセットを使用したいと思います
ios - iOS AssetLibrary 格納ポインタ
iOS での AssetLibrary の使用について質問があります。実際の画像ではなく、画像へのポインターをアプリに保存することは可能ですか? プレイリストを作成したいが、実際の画像を保存したくないとしましょう。
私が尋ねている理由は、画像ピッカーを使用すると、デバイスのドキュメントディレクトリに画像を保存できることがわかりましたが、25 程度になると、デバイス (iPad 1) の速度が低下し始めるためです。画像が非常に大きい場合は縮小し、リーク測定器を何度も実行しましたが、リークはありません。次はどこに向かうのか途方にくれたので、代替案を調査したいと思いました。メモリを解放できる場所がどこにもないので。
物理的な画像を保存しないので、AssetLibrary がオプションになるかどうか知りたいです。いくつかの欠点があることは知っています(ユーザーの場所が必要であり、画像をループするときに少し遅くなる可能性があります)
これについてのご意見は大歓迎です。
iphone - ALAsset へのメタデータの書き込み
iPhone用の動画アプリを開発しています。ビデオを録画し、AssetsLibrary フレームワークを使用して iPhone カメラ ロールに保存しています。私が使用したAPIは次のとおりです。
ALAsset を使用してビデオのカスタム メタデータをカメラ ロールに保存する方法はありますか。AssetsLibrary フレームワークを使用してこれが不可能な場合は、他の方法を使用してこれを行うことができます。基本的に、動画のメタデータの一部としてアプリの詳細を書きたいと思っています。
iphone - ALAssetsLibrary ALAssetsLibraryAccessUserDeniedError
ユーザーのALAssetsLibraryに最初にアクセスしようとすると、OSはユーザーに許可を求めるダイアログを表示します。これが許可されていない場合、failureBlockが呼び出され、今後も常に呼び出されます。この承認リクエストのプロンプトを再度強制する方法はありますか?
マップアプリで、ボタンで位置情報サービスをオンにするために設定アプリに移動するようにユーザーに通知していることに気付きました。ただし、プログラムで設定アプリを開く方法はありません。位置情報サービスをオンにする方法についての指示を表示するだけでよいですか?
ios - ファイルの内容を読み取る iOS ALAssetsLibrary および NSFileHandle
iOSでアセットライブラリファイルの中身を読みたい
NSFileHandle fileHandleForReadingFromUrl
アセットdefaultRepresentation
URL を使用すると、常に返されるよう0x0
です ...
その間、解決策を探し続けます。
編集:
アノミーからの答えが 私が望むものかもしれません:
NSUInteger length = [representation getBytes:bytes fromOffset:0 length:[representation size] error:&error];
cocoa-touch - AssetsLibrary: 位置情報サービスのプロンプトを無効にする
AssetsLibrary を使用して、ユーザーのカメラ ロールから画像を表示します。しかし、私はそれらの写真の位置データには興味がありません。この位置情報サービスのプロンプトを無効にする方法はありますか?
iphone - writeImageDataToSavedPhotosAlbum を数回使用すると劇的に遅くなる
API「writeImageDataToSavedPhotosAlbum」を使用して、画像をiPhoneのフォトアルバムに保存します。ただし、数回 (4 回など) 使用すると、毎回の保存に約 2 倍の時間がかかります。
それを再現するためのテスト方法を作成しました。毎回まったく同じ画像が保存されます。方法は次のとおりです。
新しく再起動した iPhone 4 では、次の保存時間が表示されます。
なにが問題ですか?
ios - AssetsLibrary フレームワークで Three20 ThumbViewer を使用する
TTThumbsViewController
フレームワークと組み合わせて使用しAssetsLibrary
て、iPhone に組み込まれているものと同様のフォト ギャラリーを表示しようとしています。
NSObject<TTPhoto>
適切なプロパティを実装してラップする Photo クラスを実装しようとしていますが、 CGSize
.
短い質問:
ALAsset
の次元をとして調べるにはどうすればよいCGSize
ですか?
長い質問:
私は正しい道を進んでいますか?これを行う簡単な方法はありますか?
iphone - loadView は Assets 経由で画像を取得するよりも高速です
したがって、init関数では、AssetsLibraryを介して画像を取得しています
//initWithNibName:
//loadView
コンソールからのログ:
2011-06-24 18:55:12.255 xxx[9450:207] 0 //
2011-06-24 18:55:12.306 xxx[9450:207] ALAsset - タイプ:写真、URL:{ "public.jpeg" = "assets-library://asset/asset.JPG?id=1000000001&ext=JPG" ;
そして、私は混乱しています。ログでわかるように、loadView は initWithNibName よりも速くコードを実行しました。これは、AssetLibrary を介した画像の取得に時間がかかるためです。しかし、このコードはすべて 1 つのスレッドで実行されていると思うので、loadView は initWithNibName を待つ必要があります。