3

httpサーバーが埋め込まれたアプリ(これを使用)があり、UIWebVIewでhtml5ビデオを表示する必要があり、サーバーはビデオファイルといくつかのヘッダー(Content-type、content-length、Content-Rangeなど)を返しますが、再生されません. これを修正するために何が必要ですか?

追加情報: オーディオ タグのオーディオ ファイルが再生されます。NSURLConnection で取得し、headers\responce + md5 返されたファイルと元のファイルの合計を見て、ビデオも正常に返されることを確認します。挿入(静的htmlではなくjsで追加)、html/jsコードもうまく機能し、サーバー内で使用しない場合はビデオを再生します

4

2 に答える 2

1

素晴らしい質問です!

あなたの問題は、内にある次のコード行にあると思われますHTTPConnection -performDefaultRequestHandling:

NSData *data = [NSData dataWithContentsOfURL:url];

このコード行は、ファイルの内容全体を一度にメモリに読み込みます。ファイル サイズがメモリの量よりも大きい場合、アプリは強制終了されます。あなたの質問に基づいて、そうではないと思いますが、これには他の望ましくない結果もあります。

ほとんどのストリーミング HTML ビューアは、ビデオ内でのジャンプをサポートするために、ある種の範囲ヘッダーを利用します。サーバーはそのヘッダーを尊重していないため、クライアントは要求から期待されるデータを取得していません。これにより、ストリームが破損しているとビデオ プレーヤーに報告される可能性があります。

于 2013-10-25T13:54:31.637 に答える
1

結果 - NSURLProtocol も役に立ちませんでした。この質問で解決策を見つけました (現在の代わりにcocoaHttpServerを使用) WebView のカスタム NSURLProtocol クラスは、HTML5 ドキュメントにビデオをロードするときに機能せず、iOs 7.0 を修正します (ローカルホストの代わりに 127.0.0.1 を使用します)ローカル ビデオ ストリームを再生できませんiOS 7 で機内モードがオンの場合

于 2013-12-02T07:51:20.817 に答える