人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

iPhoneで再生できるm4r(AAC)のファイルヘッダーをPHPで付加したいです。
iPhoneで聴けるm4r形式のオーディオファイルをサイトへ置きたいのですが
その際に、直リンクではアクセスさせないように、phpファイルを通して提供したい(パスワード設定やアクセス条件をPHP分岐したい)と考えています。
コードとしてはヘッダー情報を付加してm4rファイルを読んで出力しています。
実機(iPhone5)で試してみたところ、再生はされるのですが、シークバー操作ができなく、再生時間のところが--:--と表示されてしまいます。

$file = './test.m4r';
$mime = 'audio/aac';
header("Pragma: public"); // required
header("Expires: 0");
header('Content-Description: File Transfer');
header("Content-Type: $mime");
header('Content-Disposition: attachment; filename=' . basename($file));
header('Content-Length: ' . filesize($file));
header('Content-Range: bytes 0-'.filesize($file).'/'.filesize($file));
readfile($file);

何かヘッダー情報が足りないのでは?(もしくは間違っているのでは?)とは思うのですがお分かりの方いましたら教えていただきく思います。


●質問者: mihon6633
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● oil999
●50ポイント

Content-Length には、header で出力している文字列のバイト数も加えます。
Content-Range は不要です。


mihon6633さんのコメント
回答ありがとうございます。 Content-Rangeを外して付加しているheaderの文字数をContent-Lengthへ追加してみましたが、表示は変わりませんでした…。(再生時間:--:--のまま) $file = './test.m4r'; $mime = 'audio/aac'; $header_size = 0; $header = "Pragma: public"; $header_size += strlen($header); header($header); $header = "Expires: 0"; $header_size += strlen($header); header($header); $header = "Content-Description: File Transfer"; $header_size += strlen($header); header($header); $header = "Content-Type: ".$mime; $header_size += strlen($header); header($header); $header = "Content-Disposition: attachment; filename=".basename($file); $header_size += strlen($header); header($header); $header = "Content-Length: "; $header_size += strlen($header); $header .= $header_size+filesize($file)+strlen($header_size+filesize($file)); header($header); readfile($file); なにか不足な部分はありますでしょうか。。。

2 ● みかん
●50ポイント

http://ja.wikipedia.org/wiki/MP4


mihon6633さんのコメント
回答ありがとうございます。 MP4のwikiを見ただけではちょっとわからない感じです。 また、試しにMP3のオーディオファイルを上記コードで読み込んでみたのですが、同じように再生は可能なのですが、やはり再生時間の表示が--:--になります。 MP4(m4r)形式に限った話ではないのかと思います。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ