2017-08-07 7 views
0

今、私のwebappはこのように動作します:ユーザーがボタンをクリックすると、アプリケーションはインターネットからビデオを取得するURLを投稿します。クロスウォークでshouldInterceptLoadRequestを使用してローカルビデオを再生する方法は?

私の目的は:ユーザーが見たいビデオがsdcardにある場合、アプリはインターネットに尋ねずにローカルビデオを再生します。

クロスウォーク(これは非常に良いフレームです)では、メソッド "shouldInterceptLoadRequest"を見つけました。メソッドを使用して、アプリケーションが送信する準備ができたすべてのURLを取得するときに何かできます。

私のハンドルの後、私はcreateXWalkWebResourceResponse(String mimeType、String encoding、InputStream data)を使ってXWalkWebResourceResponseを返す必要があります。

は、しかし、ここで問題コード来る:

InputStream inputStream = new FileInputStream(filePath); 
return createXWalkWebResourceResponse("video/*","UTF-8",inputStream); 

は、このコードは動作しませんが、プレイヤーはまだ地元の映像ではなく、インターネットビデオを取得します。

私はどこが間違っているのだろうか?私は読書/書き込みの前提がすべて設定されていることを確信しています。ファイルパスは本当です(私はmp4ファイルを再生して成功するためのメディアプレーヤーのデモを行います)。

私はgetData()で入力ストリームを読み込もうとしますが、それは成功します。つまり、xwalkwebresourceresponseにデータがありますが、なぜデータが機能しないのですか?

私は間違っている場所を知っている人に教えてください。ドキュメント、ウェブサイト、検索可能な場所を検索しましたが、解決方法はまだ見つかりません。

答えて

0

私は質問者です。 私は答えを見つける鍵を見つけませんでした。しかし、私は問題を解決するためにいくつかの他の方法を見つける。

私は 'shouldInterceptLoadRequest'を使用してwebresourceをlocalresourceに置き換える必要がある場合。 localresourceがwebresourceになるようにWebサーバーを設定することもできます。つまり、ウェブからローカルソースにアクセスできます。だから、私は 'shouldInterceptLoadRequest'を使う必要はありません。

私はウェブビデオをs path changed by js, and when the App load the js, i use 'shouldInterceptLoadRequest' to replace the web js with local js. local js can change the web video path. after that i set up a webserver to provide the localresourceのパスにするので、アプリはローカルドメインをロードできます。

しかし、私はまだ 'shouldInterceptLoadRequest'がWebビデオを置き換えることができない理由を知りません。誰かが私に答えることを望みます。

(ああ、私はAndroidAsyncとウェブサーバをセットアップし、AndroidAsyncはgithubのことで検索することができます)

下手な英語。 wishがお手伝いします。

関連する問題