【问题标题】:Html Audio in Android WebviewAndroid Webview 中的 HTML 音频
【发布时间】:2012-05-19 10:07:39
【问题描述】:

我是 HTML 和 Java 的初学者,我正在尝试通过使用 HTML 和 Java 的 Web 视图在 android 上的一个简单的 Web 应用程序中播放音频文件。我已经成功地让它在 Android 4.0 上运行。但是,它不适用于 2.3.3 或 2.2。我做了很多研究,到目前为止,我发现它不受支持。任何人都可以确认或否认这一点,并可能指出我正确的方向吗?这是我在 4.0 上所做的工作,但没有别的。

WebView engine = (WebView) findViewById(R.id.web_engine);

String audioTest =  "< html >" + <br/>
                "< body >" + <br/>
                "< audio id='egSound' preload='auto'  autoplay ='autoplay'>" + <br/>
                "< source src=' www.egSoundUrl.com '>" +                    
                "< /audio>" + <br/>
                "< /body>"  +  
                "< /html>";

engine.loadData(audioTest, "text/html", null);

如何使相同的代码适用于 2.3.3?在我的研究中,我遇到了一个能够使用视频标签播放音频文件的人,但我无法让它工作。任何共享的知识将不胜感激。

【问题讨论】:

    标签: java android html


    【解决方案1】:

    是的。遗憾的是,只有 Gingerbread 支持 HTML5 音频元素。

    我读到音频标签在 2.2 和 2.3 中以某种方式被支持,但由于一些非常奇怪的原因,mp3 和 ogg 编解码器不支持。因此,即使在 Android 2.3 及以下的手机上支持它也没有用。

    解决方案 1 视频标签解决方法(1.6 到 2.2)如下:

    <video src="soundfile.mp3" onclick="this.play();"></video>
    

    是你试过的那个吗?

    解决方案 2 另一种可能的解决方案(2.2+)是实现一个带有 Flash 后备的 JQuery Player,例如 UbaPlayer

    解决方案 3 最后.. StackOverflow 的另一个用户有一个 java 解决方法,在这里:

    ..希望这会有所帮助:)

    【讨论】:

      【解决方案2】:

      我也遇到了同样的问题 对我有用的解决方案是.. 使用 Android 的 Mediaplayer (http://developer.android.com/reference/android/media/MediaPlayer.html) 播放音频。 您可以从您在 HTML 文件中编写的 javascript 调用 android 的功能..

      WebView webView = (WebView) findViewById(R.id.webview);
      webView.addJavascriptInterface(new WebAppInterface(this), "Android");
      --------------------------------
      public class WebAppInterface {
      
          Context mContext;
          /** Instantiate the interface and set the context */
          WebAppInterface(Context c) {
              mContext = c;
          }
      
          /** Show a toast from the web page */
          @JavascriptInterface
          public void showToast(String toast) {
              Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
          }
      }
      
      ---------------------------
      java sript code
      
      <input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" />
      
      <script type="text/javascript">
          function showAndroidToast(toast) {
              Android.showToast(toast);
          }
      </script>
      

      这样您就可以从 Android 代码中调用音频。

      【讨论】:

        【解决方案3】:

        对于任何新访问者来说只是一个快速的单行 - 尝试在您的 webview 设置代码中使用以下内容:

        mWebView.getSettings().setMediaPlaybackRequiresUserGesture(false);
        

        成功修复音频播放问题!

        【讨论】:

          【解决方案4】:

          Tag Audio 刚刚使用 .loadUrl("https://webpage.html") 为我工作。

          .loadData(htmlString, "text/html", null) 显示不受支持的 mime 消息。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2017-06-15
            • 2012-04-22
            • 1970-01-01
            • 2015-04-20
            • 1970-01-01
            • 1970-01-01
            • 2020-01-18
            相关资源
            最近更新 更多