【问题标题】:play Youtube with webview carshes播放 Youtube 时 webview 崩溃
【发布时间】:2015-02-12 16:22:07
【问题描述】:

我正在尝试使用 WebView 在我的应用程序中播放 YouTube 视频。 但是当我点击“播放”时,应用程序崩溃了。

这是我的代码:

public class Youtube extends Activity {

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.a_video_item);

    WebView videoView = (WebView)findViewById(R.id.videoView);
    TextView tvTitle = (TextView) findViewById(R.id.VideoTitle);

    WebSettings videoViewSettings = videoView.getSettings();
    videoViewSettings.setJavaScriptEnabled(true);
    videoViewSettings.setPluginState(WebSettings.PluginState.ON);
    videoView.setWebChromeClient(new WebChromeClient());

    String youtubeID ="XSzE2LLFluE";

    tvTitle.setText(youtubeID);
    videoView.loadUrl("http://www.youtube.com/embed/" + youtubeID +"?autoplay=1&vq=small");
    }
}

这是我的 XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

<WebView
    android:id="@+id/videoView"
    android:layout_width="fill_parent"
    android:layout_height="200dp"
    android:layout_below="@+id/VideoTitle"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"/>

<TextView
    android:id="@+id/VideoTitle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:text="@string/imgdesc"
    android:layout_marginRight="10dp"/>

</RelativeLayout>

我正在 Android Studio 模拟器上使用 Nexus 5 测试该项目。

【问题讨论】:

  • 您是否在AndroidManifest.xml 中添加了INTERNET 权限??
  • 是的,而且我还可以看到视频画面,点击播放后它的carshes
  • 您使用 WebView 而不是更可靠的原生播放器的任何特殊原因?
  • 不,有什么建议吗?尝试使用 youtube API,但我可以使用示例代码 Inalizetion Falirue,也许我的 API KEY 不好

标签: android webview youtube


【解决方案1】:

你必须添加两行代码:

webView.getSettings().setPluginsEnabled(true);webView.getSettings().setJavaScriptEnabled(true);

这将解决问题。试试看吧。

【讨论】:

  • 这个不是webView.getSettings().setPluginsEnabled(true);
  • 同一个 videoViewSettings.setPluginState(WebSettings.PluginState.ON); 'true' 适用于旧版本。反正我也试过了,同样的问题。
  • VideoView 需要 *.3gp 或 *.mp4,我可以从 youtube 上的直接链接获得它吗?
  • 那么您可以使用 YouTube API 来生成直接链接。告诉我你是否需要帮助。我会更新代码。
  • 尝试使用 Youtube API,但 Inalizetion Faliure,我认为我的 API KEY 不好
【解决方案2】:

我找到了问题所在。 因为我在没有 Youtube 应用程序的情况下在模拟器上进行了测试,它崩溃了。 在装有 Youtube 应用程序的设备上,它工作正常。

现在当我点击“全屏”按钮时它会崩溃

【讨论】:

    猜你喜欢
    • 2014-10-24
    • 2019-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-02
    • 2017-10-31
    • 1970-01-01
    相关资源
    最近更新 更多