【问题标题】:How to ignore ringer setting during HTML5 video playback in Cordova如何在 Cordova 中播放 HTML5 视频时忽略铃声设置
【发布时间】:2014-09-29 20:29:05
【问题描述】:

我希望 Cordova 中的 HTML5 视频播放在铃声开关设置为“静音”时播放声音,就像 Safari 中的默认行为一样。我设法通过摆弄 Cordova 默认视图控制器来获得我想要的行为,但我宁愿不修改 Cordova 的默认控制器(部分是因为它看起来是错误的,但主要是因为我们希望能够重新 -无需担心修改库文件即可构建我们的 Cordova 应用程序。)

所以我的主要问题是我不太确定如何继续向 Cordova 的控制器初始化添加一些代码。有几件事我不确定:

1) 我是否错过了让 Cordova 为我执行此操作的明显设置?我看到媒体插件做了类似的事情,但找不到类似的视频。

2) 我的临时解决方法/概念证明涉及修改 Cordova 控制器的“viewDidLoad”处理程序上的 AudioSession 类别。我是否在正确的位置修改控制器代码?我这样做是否会破坏已经存在的会话?

2) 如果我当前的代码从 Obj-C/ios 应用程序初始化的角度来看是可以的,我如何将它与 Cordova 集成,以便我们可以使用它构建一个新的 Cordova 项目(因为这是我们构建过程的一部分) ?如果我将代码包装到插件中,“pluginInitialize”是否是执行它的合适位置?

我没有太多的 Objective-C/iOS 原生体验,所以如果这主要是知道正确的事情来搜索/或理解应用程序初始化的问题,那么也将不胜感激!

编辑:使用的 Cordova 版本是 3.5.0-0.2.7

当前代码


这是我塞进 Cordova 的视图控制器的代码:

我假设 Cordova 的 WebView 使用苹果默认音频设置 (apple docs) 进行视频播放:

AVAudioSessionCategoryAmbient

声音播放为非主要应用的类别,即您的应用可以在关闭声音的情况下成功使用。

我假设我想使用 AVAudioSessionCategoryPlayback 设置。

我编辑了 Cordova 主视图控制器:

'[项目/ios-build]/CordovaLib/Classes/CDVViewController.m'

通过将来自 another answer 的这个 sn-p 放在“viewDidLoad”处理程序中:

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
BOOL ok;
NSError *setCategoryError = nil;
ok = [audioSession setCategory:AVAudioSessionCategoryPlayback
                     error:&setCategoryError];
if (!ok) {
  NSLog(@"%s setCategoryError=%@", __PRETTY_FUNCTION__, setCategoryError);
}

然后我们的视频在铃声成功静音的情况下播放了音频,但是,如上所述,我想要一些关于如何将此代码与 Cordova 集成的建议,而不是就地编辑。

【问题讨论】:

    标签: ios objective-c html cordova


    【解决方案1】:

    这个插件会做你想做的事。它基本上添加了您正在使用的代码并使您的应用忽略静音开关。

    https://github.com/EddyVerbruggen/cordova-plugin-backgroundaudio

    运行此命令将其添加到您的项目中:

    cordova plugin add https://github.com/EddyVerbruggen/cordova-plugin-backgroundaudio.git
    

    【讨论】:

    • 感谢您指出这一点。很高兴看到如何正确地做到这一点。
    • 这似乎是让您的应用在后台运行?你确定这是忽略静音键吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 1970-01-01
    • 1970-01-01
    • 2019-08-04
    相关资源
    最近更新 更多