Phonegap / Cordova在后台IOS中停止音频

时间:2012-12-20 00:34:03

标签: ios cordova audio background

我有一个音频应用程序,可以使用Cordova 2.2及其Audio 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中播放)。

是否有与后台兼容的原生计时器?

1 个答案:

答案 0 :(得分: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