【问题标题】:html5 audio on apache cordova android native appapache cordova android本机应用程序上的html5音频
【发布时间】:2014-07-28 03:20:39
【问题描述】:

音频标签是否适用于 Android 原生应用程序?
我已经搜索了一段时间,但我找不到一个帖子告诉我它是否受支持,或者我必须做什么才能使其工作。

<audio id="Multimedia1" controls="controls" width="100%" height="30px">
<source src="file:///android_asset/www/Resources/audio.mp3">
Your browser does not support audio.
</audio>

它不加载音频。 我尝试了不同的路径,例如:

Resources/audio.mp3  
www/Resources/audio.mp3  
file:///android_asset/www/Resources/audio.mp3

如果我用浏览器浏览 index.html(不是本机应用程序),音频可以通过相对路径播放。

但我无法让它与 apache cordova 应用程序一起使用。

有什么想法吗? 提前致谢!

【问题讨论】:

    标签: android cordova html5-audio


    【解决方案1】:

    Cordova 2.3.0 中 HTML5 的 audio 标签也有同样的问题。我最终做的只是使用 JavaScript 播放它们:

    这是我放在 js 文件夹中的 audio.js

    function playAudio(src) {
        src = '/android_asset/www/' + src;
        var media = new Media(src, success, errorThrown);
        media.play();
    }
    
    function success() {}
    function errorThrown(e) {
        alert('Error while playing the sound!');
    }
    

    然后在您的 HTML 代码中执行以下操作:

    <script src="js/audio.js"></script>
    

    要播放声音,请将其添加到 &lt;script&gt; 块中:

    playAudio("media/your_sound.wav");
    

    【讨论】:

    • 谢谢!我已经放弃尝试使音频标签工作并使用您的相同策略。
    【解决方案2】:

    同样的问题:我发现问题在于,为了能够在 HTML5 音频中使用 .play() 函数,它必须在用户界面事件处理程序(例如点击)中运行,详见此处:

    https://code.google.com/p/chromium/issues/detail?id=178297

    这是移动浏览器中的常见策略,旨在避免那些会自动播放内容并烧毁数据的网站。可以使用这个https://gist.github.com/blairvanderhoof/9380545 来设置应用程序使用的webview 来解决这个问题。我正在制作一个插件,安装后会改变这种行为。

    -迈克

    【讨论】:

    • 这已集成在较新的科尔多瓦版本中,因此不再需要。
    猜你喜欢
    • 1970-01-01
    • 2015-01-02
    • 2017-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    相关资源
    最近更新 更多