サウンドを再生する機能を持つアプリを実装する必要があります。それぞれの音は単語音で、期待される音の数は約1000音です。したがって、最も簡単な解決策は、これらのサウンドをサウンド ファイルとして保存し、各単語のサウンドを個別のサウンド ファイルに保存し、必要に応じて再生することです。このような多数のファイルに潜在的な問題はありますか?
3 に答える
IPA 内に 1000 個のオーディオ クリップ ファイルを保存しても問題ありませんが、スペースの要件と編成について注意することが重要です。
また、ディスクへのアクセスはメモリよりも遅く、バッテリー スペースも消費することを考慮する必要があるため、最も頻繁に使用されるオーディオ クリップをメモリにロードするのが理想的です。
余裕があれば、さまざまな圧縮スキームからオーディオを抽出できると思われる FMOD を使用してください。これらすべてのファイルを自分で処理したい場合は、.zip ファイルを作成し、libz (iOS ライブラリ libs.dylib) を使用してオンザフライで展開します。
ファイル数が多くても問題はありませんが、サイズの合計よりも多くのスペースを占有します。各ファイルは、デバイス上のスペース ブロック全体を埋めます。すべてのファイルが 1 ブロックよりも大幅に小さい場合を除き、平均して (経験則として) 半分のブロックを無駄にします。ファイルサイズ)。
あなたができること:
ファイルを 1 つの大きなファイルに連結し、各サブファイルの先頭と長さを保存し、チャンクをメモリに読み込むか、一時ファイルにコピーします。
簡単に検索できるように、データベース内のファイルを BLOB フィールドとしてドロップします。これによりスペースが節約されるわけではありませんが、コードがより単純になり、信頼性が高くなる可能性があります。
独自のキャッシュメカニズムを作成する必要はないと思います。ほとんどの場合、iOS には、はるかに優れた機能を果たすシステム全体のキャッシュがあります。これは、パフォーマンスの問題が発生し、読み込み時間を大幅に短縮する必要がある場合にのみ関連するはずです。その場合、ロードの遅延を隠し、UI のフリーズを回避する簡単な方法であるため、再生のロードとディスパッチに bolck を使用することを検討してください。
オーディオが圧縮されていない場合、App Store は圧縮されたサイズを報告します。それが展開されたサイズと大きく異なる場合、宣伝されているサイズがインストール サイズであると考えているため、一部の (細かいことを気にしている) 顧客は間違いなく文句を言うことに気付くでしょう。私は個人的な経験から知っています。彼らは一般的に、回答に技術的な回答を求めません。私はあなたじゃない。