問題タブ [alasset]

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.

0 投票する
2 に答える
532 参照

iphone - ALAssets にアクセスするときの Core Location アラート メッセージを変更できますか?

フォト ライブラリにアクセスするために ALAssets フレームワークを使用しています。初めてアクセスすると、アプリが現在の場所を使用できるかどうかをユーザーに尋ねます。それが必要であり、その理由も理解しています。

ただし、Core Location Manager には目的のプロパティがあり、iPad のアラート メッセージをカスタマイズして、[はい] をタップする必要がある理由を伝えることができるようです。(私は実際には場所を使用しません。写真ライブラリにアクセスしたいだけです。)

このプロパティを使用する場所を見つける方法がわからないようです。最初にアセットを列挙しようとしたときに警告メッセージが表示され、エラーが発生する前にそれを傍受する場所がないようです。ユーザーはノーと言います。

ALAssets を最初に使用する前に、iPad の組み込みアラートを見越して独自の通知を表示できることはわかっていますが、実際の iPad メッセージを変更する方が巧妙に思えます。

ありがとう。

0 投票する
2 に答える
4947 参照

iphone - ALAssset から取得したときの CGImage の向きの問題

iPhoneアプリ開発を始めたばかりです。ALAsset クラスを使用してフォト アルバムから写真を取得し、その写真をサーバーにアップロードしようとしています。ただし、ポートレート モードで撮影された写真は左に 90 度回転されますが、横向きの写真は正しくアップロードされます。私は何を間違っていますか?NSLog では、方向が 3 であることがわかりますが、それでも写真は左に 90 度回転しています。どんな助けでも大歓迎です。

これが私のコードのスニペットです:

0 投票する
4 に答える
5936 参照

iphone - ALAssetsLibrary を使用して単一の画像にアクセスする

ALAssetsLibrary を使用するのは初めてです。ユーザーが保存したフォト ギャラリーの最新の写真にアクセスする必要があります。これを行うには、ALAssetsLibrary インスタンスを作成し、最後の画像を選択する前に、ユーザーのギャラリー内のすべてのアイテムを反復処理する必要があるようです。これは常に最悪のシナリオです。この問題に取り組むためのより速い/より良い方法はありますか?

0 投票する
1 に答える
2046 参照

objective-c - enumerateGroupsWithTypes は、メイン スレッドでのポーリング時にブロックを実行しません。

iOS 4.x では、デバイス上のすべての写真を列挙しようとしています。それが完了したら、同じ方法でそのリストをさらに処理します。

enumerateGroupsWithTypes のブロックは別のスレッドで非同期に実行され、メイン スレッドの実行が継続されないようにする方法がわからないため、準備が整うまでさらなる処理を開始しないようにするための解決策は、収集している写真の配列を監視することです。最後に NSNull オブジェクトを含めることで、入力が完了したことを示します。

iOS 4.0 では問題なく動作します。他のスレッドが写真を列挙する間、ポーリングは続行され、それが完了するとメイン スレッドで実行が続行されます。iOS 4.1+ では、ポーリングは、他のスレッドがそのブロックを実行するのを何らかの方法で停止するため、ポーリングが無限ループに陥ります。

列挙ブロックが呼び出すことができる別のメソッドにさらなる処理を分割することにより、列挙の非同期の性質を受け入れる以外に、これを達成するためのより良い方法はありますか?

おまけ: ポーリング アプローチが 4.0 では機能するのに 4.1 以降では機能しないのはなぜですか?

0 投票する
1 に答える
2192 参照

objective-c - バックグラウンドスレッドでALAssetRepresentationからfullScreenImageを取得する

いくつかのUIImageViewインスタンス(約10)にALAssetsのUIImageインスタンスを設定する必要があります。メインスレッドをロックしたくないので、バックグラウンドスレッドで可能な限りロックしたいと思います。ALAssetからCGImageを取得するのは最も時間がかかるので、それをバックグラウンドスレッドに入れたいと思います。

私が抱えている問題は、最初の画像だけが実際に正しく読み込まれることです。他のUIImageViewインスタンスは空になります。

以下は私の(簡略化された)コードです。processAssetsメソッドは、アセットの配列を反復処理し、バックグラウンドスレッドでloadCGImageを呼び出します。このメソッドは、ALAssetからfullScreenImageを取得し、それをメインスレッドのpopulateImageViewに渡します。これを使用して、UIImageを生成し、UIImageViewにデータを入力します。

なぜこれが正しく機能しないのかわかりません。何か案は?

0 投票する
3 に答える
4097 参照

iphone - ALAsset タイムスタンプが間違った日付を返す

画像のタイムスタンプを取得しようとしています。正確な緯度と経度の値を取得できますが、タイムスタンプは画像の EXIF 時間ではなく、常に現在の時間を返します。

どんな助けでも感謝します、ありがとう

0 投票する
2 に答える
9739 参照

iphone - アセット URL からビデオを保存する方法

動画をアセット URL からアプリ ドキュメントに保存したいと考えています。私のアセットの URL は次のとおりです:-

私はこれを試しました: -

しかし、2 行目 [NSData dataWithContentsOfURL:[NSURL URLWithString:str]] で、次の理由でプログラムがクラッシュしました:- キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。

アセット動画の URL にアクセスする方法を知りたいです。

助けてくれてありがとう。

0 投票する
2 に答える
4114 参照

iphone - ALAssetsLibraryのenumerateGroupsWithTypes:usingBlock:failureBlock:iOS 4.3.4では「壊れています」ですか?

ALAssetsLibrary api(4.0以降で利用可能)に基づくiOSアプリを開発しています。これを使用して、デバイスに保存されているすべての画像とビデオを取得します。これは非常に簡単です。とにかく、iPhone4にiOS4.3.4をインストールするとすぐに、コードが機能しなくなりました。フェッチを呼び出す行は何もしません!コードは次のとおりです(iOS 4.3.3では正常に動作します)。

enumerateGroupsWithTypes:usingBlock:failureBlock:呼び出されないようです。これは、ブロックが実行されていないためです...エラーは発生しません。なんで?私に何ができる?

ps:「types」引数を変更しようとしましたが、それは問題ではありません!

0 投票する
1 に答える
4645 参照

iphone - ALAsset、exifデータを含む写真をWebサービスに送信します

カメラロールからWebサービスに写真を送信したい-exifデータを含む。私はASIFormDataRequestを使用しています-だから私は:

メモリを節約するために、ファイルを直接送信します。

したがって、アセットのローカルパスが必要です。アセットのローカルパスを取得できないと思うので、アセットを一時的にファイルに保存します。

その後、このパスを使用して

画像はサーバーに送信されますが、必要なexifデータはありません。それに加えて、それを行うためのより賢い方法があるに違いないと思います。

tia

0 投票する
1 に答える
4389 参照

objective-c - ALAsset URLから作成された場合、AVAssetにはトラックまたは期間がありません

ALAssetsLibraryからすべてのビデオアセットを取得しています(基本的に、ネイティブカメラアプリから記録されているすべてのもの)。次に、各ビデオに対してこれを行う各ビデオアセットで列挙を実行しています。

NSLogは、ALAssetから取得したAVAssetのトラック数が0で、継続時間が0.0秒であることを報告しています。URLを確認したところ、「assets-library://asset/asset.MOV?id = 9F482CF8-B4F6-40C2-A687-0D05F5F25529&ext=MOV」で正しいようです。alAsset.thumbnailを表示し、ビデオの正しいサムネイルが表示されているので、alAssetは実際にはビデオであり、正しいビデオであることがわかります。

これらすべてにより、avAssetの初期化に問題があると私は信じますが、私の人生では、何が問題になっているのか理解できません。誰か助けてもらえますか?

アップデート:

ALAssetRepresentationから提供されたURLに誤りがあることを確認したと思います。これは、正しいサムネイルが表示されるため、奇妙なことです。私はこのコードを次の場所に追加しました:

それは私にこれを与えます:

何が原因なのかはまだわかりません。私が気付いているのはURLだけです。これは、「assets-library://asset/asset.MOV?id = 9F482CF8-B4F6-40C2-A687-0D05F5F25529&ext = MOV」で、私が見たものとは異なります。これを探し回っています。他の場所で見たものは、「assets-library://asset/asset.MOV?id = 1000000394&ext = MOV」のように見え、英数字の代わりに数字がダッシュで区切られた名前になっています。

それが役に立ったら、私はXCode4.2BetaとiOS5を使用しています。何か考えられたら教えてください。ありがとう。