PhoneGap:无法在 ios 中更改 html5 音频对象的音量

Posted

技术标签:

【中文标题】PhoneGap:无法在 ios 中更改 html5 音频对象的音量【英文标题】:PhoneGap: Unable to change volume of html5 Audio object in ios 【发布时间】:2016-03-01 18:27:40 【问题描述】:

我在 javascript 中使用 html5 Audio 对象和 ios 的 phonegap。 它在 android 中运行良好,但我无法更改音频音量。 我正在使用 phonegap build 来构建这个应用程序。 我的目标平台是android(等于或大于4)和ios(等于或大于7)。

这是我的第一个应用程序,但我为此工作了大约一个月,但我仍然不是那么好,这就是我坚持音量问题的原因。

我正在使用以下代码:

var my_audio = new Audio('test.mp3');
my_audio.play();
my_audio.volume=0.4;
console.log(my_audio.volume); // this still outputs 1

正如您在上面注意到的那样,音量没有改变。

我使用以下链接作为参考: 我正在使用此链接获取文档:http://www.w3schools.com/tags/ref_av_dom.asp http://www.w3schools.com/tags/av_prop_volume.asp

谁能指导一下如何克服这个问题?

我们将不胜感激。 谢谢

【问题讨论】:

关于您的问题的信息不足。请在您的帖子中回答以下问题。因为这似乎是你关于这个主题的第一篇文章。这是您的第一个混合应用程序吗?您的目标平台及其目标版本是什么:Android 4、5、6? iOS 7、8、9?你在使用CLI, SDK or Build 吗?请不要假设答案,请阅读链接。一旦您在帖子中回答了问题,请在 cmets 中回复,以便我知道您已在帖子中添加信息。 请同时指出您正在使用的文档。 感谢@JesseMonroy650 的回复。我更新了问题。请检查。 您使用的是哪个文档? 我会在需要时从docs.build.phonegap.com 阅读文档。 【参考方案1】:

@Stack 开发人员, 在审查了你们的 cmets 并审查了您的参考文件之后,我认为谨慎的做法是看看是否有对您的任务的支持。

我从caniuse.com 开始,然后在 HTML5 部分单击了"audio elements"。在我看到的已知问题下:

音量在 iOS 上是只读的。 Android 上的 Chrome 不支持规范建议的自动播放。 Android 上的 Chrome 不支持按照规范的建议更改播放速率。

目前,您似乎无法在 iOS 设备上更改 HTML 音频 的音量。

【讨论】:

那应该怎么解决呢?我想在 iOS 中播放音频并想控制音量。我知道 cordova 的媒体插件具有很好的功能,包括控制音量,但该插件在 iOS 上无法正常工作。该插件冻结。我在网上搜索,很多人发现 iOS 上的媒体插件有同样的问题,所以这就是我选择 HTML5 音频对象的原因。你能在这种情况下提出解决方案吗? 好的。我查看了插件(媒体)和 iOS 的错误。我看到no significant bugs。我怀疑看到的是不知道自己在做什么的人。确实,Phongap 和 iOS 存在错误,但我没有看到任何崩溃(至少没有一个作为活动错误)。 这是我的links to bug repositories。这是与Android and iOS 一起使用的工作演示应用程序的链接,它不使用音量选项。祝你好运。 感谢分享有用的信息。我正在使用 iOS 中的媒体插件从远程服务器流式传输 mp3 音频文件。每当我播放远程文件时,屏幕就会冻结几秒钟,并在准备好播放时恢复正常(我认为是缓冲的)。我认为播放本地 mp3 或本地音频文件不会导致任何问题,但播放远程 mp3 文件会导致冻结问题。您在上面提供的演示应用程序不会播放来自远程服务器的文件。如果我从远程服务器播放音频文件,我将面临冻结问题。你对使用 ios 中的媒体插件从远程服务器播放文件有什么看法? @StackDeveloper 是你看documentation,我的例子有一个回调onSuccess()。这是为了使库异步。因此,您使用回调来处理网络(或系统)延迟。在我的示例中,我忽略了回调,但我想在下一个版本中我将使用回调,以便该示例具有更普遍的用途。 FWIW:任何超出原始问题的问题都应移至不同的论坛。我建议Google Group of Cordova/Phonegap。

以上是关于PhoneGap:无法在 ios 中更改 html5 音频对象的音量的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap 无法将 HTML5 移动应用程序转换为 IOS

Phonegap / Cordova ios外部链接iframe无法在safari中打开

iOS notification.alert() 无法使用 Phonegap 2.3.0

PhoneGap iOS 无法使用 HTML 5 播放视频

Cordova/Phonegap iOS - 应用程序发送到后台后更改了 html5 输入文本类型

jQueryMobile + PhoneGap + iOS 11:阻止尝试使用history.replaceState()更改会话历史记录URL