AVAudioPlayer がどのように機能するかはわかりませんが、この問題を解決する唯一の方法は、プレーヤーがアクセスできる何らかの抽象化を提供することです。プレーヤーが「ファイル」オブジェクトにしかアクセスできない場合は、運が悪く、別のプレーヤーを使用する必要があります。プレーヤーが何らかの入力ストリームにアクセスできる場合 (アクセスできると思われます)、ファイルからストリームを作成し (「ファイル ストリーム」と呼びます)、ファイル ストリームから復号化ストリームを作成できます。復号化ストリームを作成するために既存のコード (crypto++ など) を使用する必要がある場合に限り、AES 暗号化を理解する必要があります。
疑似コードでは、次のようになります。
filestream fs = new filestream( path )
decryptionstream ds = decryptionstream( fs, decryptionkeydata )
AVAudioPlayer.open( ds );
AVAudioPlayer.play()
内部的に、AVAudioPlayer は復号化ストリームからデータのチャンクを読み取ります。これにより、ファイル ストリームからデータが取得され、ファイルからデータが取得されます。データは、decryptionstream で一度に 1 つのチャンクで復号化されます。