ios – 如何在Cordova的HTML5视频播放过程中忽略铃声设置

前端之家收集整理的这篇文章主要介绍了ios – 如何在Cordova的HTML5视频播放过程中忽略铃声设置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望Cordova中的 HTML5视频播放能够在振铃开关设置为“静音”时播放声音,就像Safari中的默认行为一样.我设法通过摆弄Cordova默认视图控制器来获得我想要的行为,但我宁愿不修改Cordova的默认控制器(部分因为它看起来不对,但主要是因为我们希望能够重新构建我们的Cordova应用程序,而无需担心修改文件.)

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

1)我错过了一个明显的设置让科尔多瓦为我做这件事吗?我看到Media插件做了类似的事情,但找不到类似于视频的东西.

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默认音频设置(apple docs)进行视频播放:

AVAudioSessionCategoryAmbient

The category for an app in which sound playback is nonprimary—that is,your app can be used successfully with the sound turned off.

我假设我想使用AVAudioSessionCategoryPlayback设置.

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

‘[project/ios-build]/CordovaLib/Classes/CDVViewController.m’

将此片段从another answer放入“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集成,而不是就地编辑.

解决方法

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

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

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

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

猜你在找的iOS相关文章