我无法使用 cordova 插件媒体播放音频

问题描述 投票:0回答:1

我想播放音频,但不能

我在尝试在移动应用程序中播放声音时遇到了 Cordova 媒体插件的问题。目前,我使用 Cordova 版本 12.0.0、macos 14 sonoma、cordova 插件媒体 7.1 和 Xcode 版本 15。

以下是相关代码片段:

function playAudio(src) {
    var sv = SugarCube.State.variables;
    if (!musica) {
        if (sv.dispositivo == "ios") {
            musica = new Media("sounds/" + src + ".mp3", null, null, function (status) {
                if (status === Media.MEDIA_STOPPED) musica.play({ playAudioWhenScreenIsLocked: false });
            });
            musica.play({ playAudioWhenScreenIsLocked: false });
            musica.setVolume("" + sv.vmusica);
        } else {
            SugarCube.SimpleAudio.tracks.add("music", "sounds/" + src + ".mp3");
            musica = SugarCube.SimpleAudio.tracks.get("music");
            musica.volume(sv.vmusica);
            musica.play();
            musica.loop(true);
        }
    } else {
        stopAudio();
        playAudio(src);
    }
}

我在 macOS 14 Sonoma 上使用 Xcode 15 和 Cordova 12.0.0 以及 Cordova Lib 12.0.1。此外,我正在使用 Node.js v20 和 Cordova Plugin Media 版本 7.0。

有趣的是,当使用 macOS 13.3 Ventura、Xcode 14.3、Cordova 11.0.0 与 iOS 6.3 和 Media Plugin 6.1 时,代码可以正常工作。

我正在考虑三种可能的解决方案:

  1. 将音频解码为 M4A 以测试问题是否与 MP3 有关。
  2. 尝试使用 iOS 6.3 降级到 Cordova 11.0 和 Cordova Plugin Media 6.1。
  3. 删除媒体插件,尽管我需要它来实现个性化音量控制和淡入/淡出功能。

我怀疑该问题可能与使用与 macOS 14 不兼容的旧版 Mac 有关,因为它依赖于 OpenCore。然而,即使在 iPhone SE 3rd 上编译,我仍然无法播放声音。

我正在寻求有关 Xcode 15 中使用 Apache Cordova 的 Cordova Media Plugin 7.0 潜在问题的帮助或见解。

node.js cordova sugarcube
1个回答
0
投票

Cordova Media Plugin v7 改变了解析文件路径和名称的方式。如果您想访问 www 文件夹内的文件,您现在需要在文件路径的开头添加 / 。

尝试

new Media("/sounds/" + src + ".mp3",...)

如果声音目录位于 www 文件夹内,您的 mp3 应该可以播放。

查看https://github.com/apache/cordova-plugin-media/pull/362了解详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.