MPMoviewPlayerViewControllerでサーバ上の動画を再生する際には注意が必要です。
静的なファイルを直接URLで指定するような場合には特に何も気にする必要はありませんが、JavaやPHPのようにサーバ上のプログラムから動画データを出力するような場合には普通に出力させてもちゃんと再生されません。
というのも、どうやら、MPMoviePlayerViewControllerは指定されたURLに対してバイトレンジを指定してリクエストを送っているようです。
Range: bytes=0-5011
のように。
ここからは推測も入っていますが…
最初のリクエストで
Range: bytes=0-1
を送って、レスポンスヘッダに
Accept-Rages: bytes
が含まれているかをチェックして、バイトレンジのアクセスが許可されていなければ即再生を止めプレイヤーを終了してしまいます。
ですから、プログラムから動画を出力する場合には、リクエストレンジを取得して適切なレスポンスを返す必要があります。確認した限りでは結構頻繁にリクエスト送っています。同時に複数のセッションを張っている可能性もあります。
PHPなら、$_SERVER['HTTP_RANGE']でとれます。
0 コメント:
コメントを投稿