1

Google の APK サイズ制限を破り、ダウンロードしたサウンド ファイルを拡張パック経由で送信する予定です。「assets」フォルダには、oggsm の Music と Sounds を保持するために使用する 2 つのディレクトリがあります。

最初の部分はスムーズに進み、これら 2 つのディレクトリと約 200 個のファイルを含む zip ファイルを obb フォルダーにプッシュし、zip を開いてその中のファイルにアクセスすることができました。

問題は、それらをどこに置くかです。

APKデータが最初に解凍された場所のルートディレクトリを取得し、サウンドを以前と同じ場所に戻そうとしています。

これは正しいですか、それとも getexternalfilesdir() を使用して 2 つのフォルダーをそこに配置し、新しい場所を使用してサウンドを再生する必要がありますか?

返信ありがとうございます。

4

1 に答える 1

4

APK拡張ファイルを解凍しないでください。zip -0を使用してアセットを追加することにより、APKファイル(非圧縮)にアセットを保存するのと同じ方法でアセットを保存します。その後、APK拡張ファイルから直接ストリーミングできます。APK拡張ファイルを解凍する場合は、ファイルを2回保存する必要があります。これは、アプリケーションを更新した場合、GooglePlayがAPK拡張ファイルを再度ダウンロードするためです。

AndroidのすべてのオーディオおよびビデオAPIは、FileDescriptor、offset、およびlengthを取ります。

例:

http://developer.android.com/reference/android/media/MediaPlayer.html#setDataSource(java.io.FileDescriptor、long、long

実は、APK拡張ファイルパッケージに付属しているサンプルコードには、AssetFileDescriptorを返す関数がZipResourceFileにあります。

AssetFileDescriptorオブジェクトは、元のファイル記述子だけでなく、オフセットと長さも返します。

于 2012-05-08T22:58:56.133 に答える