我想在Android VideoView中播放关注youtube url,但它不是流媒体视频
https://www.youtube.com/watch?v=h-gEwftyPCg
以下是我的代码
VideoView videoView = (VideoView) getView().findViewById(R.id.dealVideo);
MediaController mc = new MediaController(getContext());
mc.setAnchorView(videoView);
mc.setMediaPlayer(videoView);
videoView.setVideoURI(Uri.parse("https://www.youtube.com/watch?v=h-gEwftyPCg"));
videoView.start();
我也想支持非youtube视频网址
答案 0 :(得分:3)
您无法在VideoView中直接播放YouTube链接。
您需要整合youtube播放器。
检查一下如何做到这一点: https://developers.google.com/youtube/android/player/
答案 1 :(得分:0)
经过长时间的搜索,我发现了这种实现方式。
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.about_fragment, container, false);
String frameVideo = "<html><body><br><iframe width=\"320\" height=\"200\" src=\"https://www.youtube.com/embed/XDYbEuY8nIc\" frameborder=\"0\" allowfullscreen></iframe></body></html>";
WebView displayYoutubeVideo = (WebView) rootView.findViewById(R.id.videoView);
displayYoutubeVideo.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});
WebSettings webSettings = displayYoutubeVideo.getSettings();
webSettings.setJavaScriptEnabled(true);
displayYoutubeVideo.loadData(frameVideo, "text/html", "utf-8");
return rootView;
}
在layout.xml内:
<WebView android:id="@+id/videoView"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_marginTop="-45dp"
android:layout_marginLeft="-5dp"/>
这将很好地工作。
答案 2 :(得分:0)
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
接受许可