我正在尝试使用 WebView 快速将播放声音(使用 soundmanager2)的 html 应用程序移植到本机 android 应用程序。根据我的研究,我还没有看到任何证据表明声音(例如 mp3)可以通过 javascript 或使用 WebView 的任何其他方法来播放。
我现在的目标是快速移植 html 应用程序,然后最终创建一个真正的本机应用程序,而不使用 WebView。
如果有人能够使用 WebViews 和 Javascript 成功实现播放音频,或者目前无法实现,请告诉我。
谢谢。
我是Android的新手,并且一直试图让HTML5 <audio>标签在WebView浏览器中运行,但不断获得MediaPlayer错误(1,-2147483648).我正在尝试播放的文件位于"assets"目录下.我尝试在"res/raw"目录中引用一个文件,但结果相同.
为了验证文件是否可以找到和播放,作为我的测试的一部分,我创建了一个代码的变体,声音将通过<a>标签触发,并由WebViewClient处理,使用以下建议:
它工作(虽然我不得不从URL中删除领先的"file:/// android_asset"),但使用锚点并不是我希望页面运行的方式.我希望在页面打开时播放背景声音,并在点击某些<div>标签时通过Javascript触发其他声音.我在其他地方读到Android现在支持标签,但我没有运气,我正在使用最新的SDK.
我已经创建了一个精简的测试页面进行试验,其详细信息如下所示.我一直在找一个没有运气的解决方案.我不知道缺少什么(我的偏好是尽可能避免使用任何附加组件并且仅使用Android).
资产目录布局
assets
> audio
> a-00099954.mp3
> a-00099954.ogg
> image
> script
> style
> video
audioTest.html
Run Code Online (Sandbox Code Playgroud)
Java代码
package com.test.audiotag;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebView;
public class MainActivity extends Activity
{
private WebView localBrowser;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
localBrowser = (WebView)findViewById(R.id.localbrowser);
localBrowser.getSettings().setJavaScriptEnabled(true);
localBrowser.loadUrl("file:///android_asset/audioTest.html");
}
}
Run Code Online (Sandbox Code Playgroud)
表现
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android ="http://schemas.android.com/apk/res/android"
package ="com.test.audiotag"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="14" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name =".MainActivity"
android:label …Run Code Online (Sandbox Code Playgroud)