まず第一には、エンコーディングを気に。ここにはarticle with a working exampleと、Androidウェブキットの動画をエンコードするためのガイドラインがあります。
そして、私はこの問題に直面しなければならなかった時、ちょっと調べて役に立つ回答を見つけなければなりませんでした。基本的には、このコードはあまりandroid project source code of the browserに触発されて、ビデオをネイティブブラウザだから
public class InredisChromeClient extends WebChromeClient implements OnCompletionListener, OnErrorListener {
private InterfazWebInredis interfazWeb; // Use Your WebView instance instead
private VideoView mCustomVideoView;
private LinearLayout mContentView;
private FrameLayout mCustomViewContainer;
private WebChromeClient.CustomViewCallback mCustomViewCallback;
private LinearLayout mErrorConsoleContainer;
static final FrameLayout.LayoutParams COVER_SCREEN_GRAVITY_CENTER = new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT, Gravity.CENTER);
public InredisChromeClient(InterfazWebInredis iwi) {
super();
this.interfazWeb = iwi;
}
public void onShowCustomView(View view, CustomViewCallback callback) {
// super.onShowCustomView(view, callback);
if (view instanceof FrameLayout) {
mCustomViewContainer = (FrameLayout) view;
mCustomViewCallback = callback;
mContentView = (LinearLayout) interfazWeb.findViewById(R.id.mainContainer);
if (mCustomViewContainer.getFocusedChild() instanceof VideoView) {
mCustomVideoView = (VideoView) mCustomViewContainer.getFocusedChild();
// frame.removeView(video);
mContentView.setVisibility(View.GONE);
mCustomViewContainer.setVisibility(View.VISIBLE);
interfazWeb.setContentView(mCustomViewContainer);
mCustomVideoView.setOnCompletionListener(this);
mCustomVideoView.setOnErrorListener(this);
mCustomVideoView.start();
}
}
}
public void onHideCustomView() {
if (mCustomVideoView == null)
return;
// Hide the custom view.
mCustomVideoView.setVisibility(View.GONE);
// Remove the custom view from its container.
mCustomViewContainer.removeView(mCustomVideoView);
mCustomVideoView = null;
mCustomViewContainer.setVisibility(View.GONE);
mCustomViewCallback.onCustomViewHidden();
// Show the content view.
mContentView.setVisibility(View.VISIBLE);
}
@Override
public void onCompletion(MediaPlayer mp) {
mp.stop();
mCustomViewContainer.setVisibility(View.GONE);
onHideCustomView();
interfazWeb.setContentView(mContentView);
}
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
interfazWeb.setContentView(R.layout.main);
return true;
}
}
を行う道を開く必要があります。
これは、ビデオフルスクリーンを開いている動作です。私はそれがウェブページ内のそれ自身のフレームでビデオを再生することが可能かどうか分からない。しかし、この解決策は私のためのトリックをした、私もあなたのために願っています。
よろしく
この[リンク]あなたのissue.Butを解決するのに役立ち、まだそれが言及されているいくつかの問題を持っています(http://stackoverflow.com/questions/3815090/webview-and-html5-video)リンクに –