0

私はビデオストリーミングアプリケーションに取り組んでいます。サーバー上でm3u8ファイルを保護しました。暗号化されたtsファイル(AES-128暗号化)が含まれています。安全なm3u8ファイルを解析してから、tsファイルをダウンロードして復号化します。

復号化されたすべてのファイルをデバイスの外部ストレージの場所に保存します。次に、復号化されたすべての ts ファイルを指す新しい m3u8 ファイルを作成します。

NanoHTTPDクラスを使用して、デバイス自体にカスタム サーバーを作成しています。これは、復号化されたすべての ts ファイルと新しい m3u8 ファイルを配置したディレクトリを指しています。

次にVideoView、カスタム サーバー上の m3u8 ファイルの URL を使用して渡します。

再生を開始するVideoViewとビデオは正常に開始されますが、しばらくすると「このビデオを再生できません」というエラー メッセージが表示されます。

ログにこのメッセージが表示されます

01-15 18:53:52.072: W/AudioSystem(16009): AudioFlinger server died!
01-15 18:53:52.072: W/IMediaDeathNotifier(16009): media server died
01-15 18:53:52.072: E/MediaPlayer(16009): error (100, 0)
01-15 18:53:52.072: E/MediaPlayer(16009): Error (100,0)
01-15 18:53:52.072: D/VideoView(16009): Error: 100,0

問題がどこにあるのかわかりません。私のサーバーまたはVideoViewで。

暗号化されたすべての ts ファイルが適切に復号化されていることを確認しました。カスタム サーバーの m3u8 URL を Android プレーヤーで再生したところ、完全に動作しました。

Apple のサンプルm3u8 urlも試しました。ここでは、ts ファイルをダウンロードして、独自の m3u8 ファイルを動的に作成します。正常に動作します。

どこで、何が間違っているのか教えてください。

4

1 に答える 1

0

問題を解決しました。問題は復号化にありました。

于 2013-01-22T07:05:01.220 に答える