【问题标题】:Play local audio on cordova in Meteor 1.3在 Meteor 1.3 中的 cordova 上播放本地音频
【发布时间】:2016-03-29 17:59:24
【问题描述】:

所以我有一个音频文件/public/sound.mp3。我想用cordova media plugin 玩它

new Media('/sound.mp3').play()

但这不起作用。我应该传递的本地 url 是什么?

更新

我发现流星 1.3 通过

在科尔多瓦本地提供资产
http://localhost:<port>/path/to/asset

其中&lt;port&gt; 是从 appId 随机生成的介于 12000 和 13000 之间的数字。您可以通过在 cordova 上调用 document.location.origin 来了解它是什么。然后你可以连接资产路径:

var path = document.location.origin + '/sound.mp3'
// evaluates to e.g. http://localhost:12272/sound.mp3

现在我们应该可以将它传递给 Media,对吧?

new Media(path).play() // works on Android, but not on iOS

我知道路径实际上在 Android 和 iOS 上都是正确的,因为我通过编写 document.location.href = path 来测试路径,它将浏览器导航到实际的声音文件。关于什么可能导致 iOS 上出现这种行为的任何想法?

【问题讨论】:

    标签: cordova meteor


    【解决方案1】:

    我不知道 Cordova 媒体插件,但是当您将文件放入“公共”文件夹时,无需指定。

    我认为这段代码是正确的:

    新媒体('sound.mp3').play()

    【讨论】:

    • 我已经更新了原帖,并写下了我发现的关于本地资产 URL 的内容。 iOS 的问题尚未解决。
    • @kristjaningi 不,我没有!仍然没有找到在 iOS 上的 cordova 中播放本地音频的方法!
    • @Pueggel 你找到解决方案了吗?
    • @msj121 是的,我最终通过 brentjanderson:buzz 使用了buzz.js。只需将 sound.mp3 放在 /public 文件夹中,然后执行以下操作: new buzz.sound('/sound.mp3').play()
    【解决方案2】:

    使用 buzz.js,通过 npm 安装或使用 brentjanderson:buzz 包。现在将你的声音 sound.mp3 放到流星的 /public 文件夹中,然后像这样播放音频:

    new buzz.sound('/sound.mp3').play()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-01
      • 2017-10-25
      • 2015-02-10
      • 1970-01-01
      • 1970-01-01
      • 2015-01-09
      • 1970-01-01
      相关资源
      最近更新 更多