无法在WebView中播放音频标签:Android Lollipop

4

已经过去了几个小时,但我仍然无法找到任何关于这个主题的信息。我进行了大量搜索,但仍然没有帮助。

到目前为止,我所做的(当然这不是我尝试过的全部)看起来很明显,如下:

AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

MainAcitivity:

WebView webMain = (WebView) findViewById(R.id.my_web_view);

        webMain.loadUrl("file:///android_asset/testing.html");
        webMain.setWebViewClient(new MyWebViewClient(getApplication()));

activity_main:

<WebView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/my_web_view"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/app_bar" />

我可以看到下面的内容,但是没有声音播放:

enter image description here

日志:

02-12 10:06:53.535    6392-6429/org.example.android.flickrbrowser E/MediaResourceGetter﹕ Unable to configure metadata extractor
02-12 10:08:59.400    6492-6529/org.example.android.flickrbrowser D/MediaResourceGetter﹕ ethernet/wifi connection detected
02-12 10:09:08.114    6492-6529/org.example.android.flickrbrowser D/MediaResourceGetter﹕ resource doesn't have video

任何帮助或链接都将不胜感激。非常感谢。
编辑
testing.html
此文件包含html的

你能同时发布你的 testing.html 文件吗? - Danail Alexiev
它完美地运行,我已经在Chrome上检查过了。 - Nabin
@DanailAlexiev 请查看编辑 - Nabin
你是否明确需要在嵌入式的 WebView 中播放它?你考虑过使用 MediaPlayer 吗?你可以使用 setDataSource(String path) 来设置 URL。 - Danail Alexiev
1
是的,MediaPlayer 支持这个功能。说实话,我没有尝试过,但文档明确表示它支持使用此方法从 URL 进行流媒体传输。我唯一能给你的建议就是,可以尝试一下看看是否可行。如果可以,您可以尝试解析音频标签,提取所需信息并使用本地组件来实现您的目标。如果您将 HTML 页面捆绑在应用程序中,则可以直接使用提供的 URL 并从中进行流媒体传输。 - Danail Alexiev
显示剩余2条评论
2个回答

4

这对我来说足够了

webMain.getSettings().setJavaScriptEnabled(true); webMain.getSettings().setMediaPlaybackRequiresUserGesture(false);

这段代码是启用Web视图中的JavaScript并允许在不需要用户手势的情况下自动播放媒体。

-1

让你的主要活动成为下一个

MainActivity:

WebView webMain = (WebView) findViewById(R.id.my_web_view);
        webMain.setWebViewClient(new MyWebViewClient());
        webMain.getSettings().setJavaScriptEnabled(true);
        webMain.getSettings().setMediaPlaybackRequiresUserGesture(false);
        webMain.setWebChromeClient(new WebChromeClient());
        webMain.loadUrl("file:///android_asset/testing.html");

添加清单:

android:hardwareAccelerated="true"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接