【问题标题】:Phonegap / Cordova Stop audio after time when in background IOSPhonegap / Cordova 在后台 IOS 一段时间后停止音频
【发布时间】:2012-12-20 00:34:02
【问题描述】:

我有一个音频应用程序,它使用 Cordova 2.2 及其音频 API 循环播放声音。 目前,我已经设置了多个循环,这些循环将在根据预定时间完成时停止(按每个循环 n 秒/3 小时计算)。这种方法一般都行。

           playMainAudio = new Media(url,
                                          // success callback
                                          function() {
                                          console.log("playAudio():Audio Success");
                                          },
                                          // error callback
                                          function(err) {
                                          console.log("playAudio():Audio Error: "+err);
                                          });

                // Play audio
                playMainAudio.play({ numberOfLoops: 123, playAudioWhenScreenIsLocked : true });

但我更喜欢添加原生代码,我可以将所有音频设置为在 3 小时后停止,而不是根据时间来解决 - 但不确定是否要查看甚至放置代码。问题是它必须在锁定或应用程序处于后台时工作(目前我设置了正确的后台模式,因此音频将在 BG 中播放)。

是否有与后台兼容的本机计时器?

【问题讨论】:

    标签: ios cordova audio background


    【解决方案1】:

    如果你热衷于在 Objective-C(不是你选择的语言)里面编辑 app delegate.m

    - (void)applicationDidEnterBackground:(UIApplication *)application 停止音频但延迟使用

    – performSelector:withObject:afterDelay:

    在此处查看文档:

    http://developer.apple.com/library/ios/#documentation/uikit/reference/UIApplicationDelegate_Protocol/Reference/Reference.html

    https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSObject_Class/Reference/Reference.html

    有关如何在 Objective-C 中播放音频的示例:

    How to play a sound in objective C iphone coding

    Play Audio iOS Objective-C

    How can I Add Audio Player in iphone App

    【讨论】:

    • 感谢您的信息,Objective C 不是我选择的代码,我想这很难,因为我是通过 phonegap 而不是直接启动声音。
    • 写下你的伪代码或算法。谷歌目标 C 中的确切命令以及您需要在(appdelegate.m 等)中插入该代码的文件,我已经提供了链接。如果你想成为一名 iphone 程序员,我看不到任何其他出路,因为一些编码可以在 jquery 中完成,但高级控制是在 xcode 中,这是客观的 C。给它一些时间并学习。