无法从youtube网址播放视频中的视频

时间:2017-02-15 11:19:01

标签: android video youtube android-videoview android-video-player

我想在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视频网址

3 个答案:

答案 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"/>

接受许可