1

ビデオファイルが有効かどうかを検出する必要があります(有効でない場合は削除します)。エアー塗布です。

大きなファイルの場合は、MediaPlayerState.PLAYBACK_ERROR状態を処理することで実現できます。問題はありません。


ただし、 のように空のファイルempty.mp4がある場合、PLAYBACK_ERROR は送出されません。次に、singleChar.mp4 ファイル (x内部に文字を含む) を作成しましたが、動作はまったく同じでした。

READY問題なく状態を 通過します。playingはその時点で真です(ドキュメントには のtrue場合であると記載されているplaying or attempting to playため、これも信頼できません)。

次に、それらのファイルを有効なものとして扱うことを提案しましたduration=0...いいえ!期間が設定されdurationChangeていない、発送されていません。

現時点での最善のアプローチは、このタイムアウトがいつ期限切れになるかを確認するplay()ことです。少なくとも 50% のケースで機能します。ただし、これはまったく当てになりません。遅延を延長することで信頼性が向上する可能性がありますが、ユーザーが問題に気付く前に、迅速に検出して静かに処理することをお勧めします。setTimeout50msduration

他の可能なアプローチは、ファイルが特定のサイズ (おそらく 100KB?) より小さいかどうかを確認することですが、これも愚かで信頼できないアプローチです。

では、ファイルが有効なビデオ ファイルかどうかを検出する信頼できる方法はありますか?

4

0 に答える 0