man*_*ard 30 youtube video html5 android
编辑 Nevermind,YouTube发布了原生Android API(https://developers.google.com/youtube/android/player/)
我有一个应用程序,通过WebView显示HTML5视频.此视频被迫通过YouTube服务获得HTML5(http://www.youtube.com/embed/3FFyT039tJ0?autoplay=1&rel=0&showinfo=0&html5=1&start=90&end=176 )
正如您在URL中看到的,参数"start"显示视频必须开始播放的秒数.我一直在使用该方法onShowCustomView的WebChromeClient获得VideoView通过的WebView创建的对象,因为看到这里.
当我有参考时VideoView,我可以使用该方法seekTo()来实现我的目标.直到这里一切都很好,但仅适用于低于4.x的Android版本.
正如你们许多人知道,方法onShowCustomView的WebViewChromeClient,从4.x和前进,当用户点击"全屏"模式只调用,但在视频开始时不打(如何使用是4.x版之前).
所以,重点是我不能向前寻求90秒,因为我无法获得对VideoView的引用,我找不到任何解决方法.
小智 0
试试这个:
wv.getSettings().setPluginsEnabled(true);
DisplayMetrics metrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics);
int w1 = (int) (metrics.widthPixels / metrics.density), h1 = w1 * 3 / 5;
String item="http://www.youtube.com/embed/3FFyT039tJ0";
wv.getSettings().setJavaScriptEnabled(true);
wv.setWebChromeClient(chromeClient);
wv.getSettings().setPluginsEnabled(true);
try {
wv.loadData(
"<html><body><iframe class=\"youtube-player\" type=\"text/html5\" width=\""
+ (w1 - 20)
+ "\" height=\""
+ h1
+ "\" src=\""
+ item
+ "\" frameborder=\"0\"\"allowfullscreen\"></iframe></body></html>",
"text/html5", "utf-8");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
并编写一个像这样的 webchrome 客户端:
private WebChromeClient chromeClient = new WebChromeClient() {
@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
super.onShowCustomView(view, callback);
if (view instanceof FrameLayout) {
FrameLayout frame = (FrameLayout) view;
if (frame.getFocusedChild() instanceof VideoView) {
VideoView video = (VideoView) frame.getFocusedChild();
frame.removeView(video);
video.start();
}
}
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1828 次 |
| 最近记录: |