我是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) 我的Android 4.0.4应用程序包含一个WebView,用户可以通过该视图查看资产目录中本地存储的多个页面.在页面中循环时,最终会触发以下错误并且应用程序崩溃:
这个问题似乎与这里报道的问题有关:
我使用了以下链接中给出的Memory Analyzer Tool插件说明来检查详细信息:
http://therockncoder.blogspot.ca/2012/09/fixing-android-memory-leak.html
结果显示如下(无法发布屏幕截图,因此文本必须执行):
MAT摘录
Class Name | Shallow Heap | Retained Heap | Percentage
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| | |
java.lang.Thread @ 0x40daa320 Thread-39775 Thread | 80 | 15,310,552 | 76.74%
|- byte[32768] @ 0x40d5a8d0 <!DOCTYPE html>.<html xml:lang="">.<head>. <title>Android Test-HTML5-480PX-Page 0</title>. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />. <meta name="viewport" content="width=360, height=480">. <!--. <meta name="viewport" co...| 32,784 | 32,784 | 0.16%
|- byte[32768] @ 0x40e25bb8 …Run Code Online (Sandbox Code Playgroud)