我有一个音乐Phonegap应用。播放音乐时,单击“主页”按钮,然后音乐停止。 无论如何,即使单击主页按钮,Phonegap仍然会正常运行吗?
提前感谢您的建议!!
我正在使用Phonegap构建,我的config.xml如下所示。
<?xml version="1.0" encoding="UTF-8" ?>
<widget xmlns = "http://www.w3.org/ns/widgets"
xmlns:gap = "http://phonegap.com/ns/1.0"
id = "com.myMusic.myMusic"
version = "1.0.15">
<name>MyMusic</name>
<description>
MyMusic
</description>
<gap:platform name="ios" />
<gap:platform name="android" />
<preference name="permissions" value="none"/>
<preference name="phonegap-version" value="3.1.0" />
<gap:plugin name="de.appplant.cordova.plugin.background-mode" version="0.5.0" />
<gap:plugin name="org.apache.cordova.camera" version="0.2.9" />
<gap:plugin name="org.apache.cordova.media-capture" version="0.2.8" />
<gap:plugin name="org.apache.cordova.battery-status" version="0.2.7" />
<gap:plugin name="org.apache.cordova.device" version="0.2.8" />
<gap:plugin name="org.apache.cordova.network-information" version="0.2.7" />
<gap:plugin name="org.apache.cordova.dialogs" version="0.2.6"/>
<gap:plugin name="org.apache.cordova.splashscreen" version="0.2.7" />
<gap:plugin name="org.apache.cordova.geolocation" version="0.3.7" />
<gap:plugin name="org.apache.cordova.file" version="1.0.1" />
<gap:plugin name="org.apache.cordova.media" version="0.2.8" />
<gap:plugin name="org.apache.cordova.inappbrowser" version="0.2.4" />
<preference name="orientation" value="portrait" />
<preference name="target-device" value="universal" />
<preference name="fullscreen" value="false" />
<preference name="webviewbounce" value="false" />
<preference name="DisallowOverscroll" value="true" />
<access origin="*" />
</widget>
答案 0 :(得分:0)
做一个非常快速和简短的搜索,你会发现这个问题已经被问过了,所以已经这么多次了,并且有很好的答案。
但是,这应该可以解决您的问题:
在info.plist
文件中,添加Required background modes
的新密钥。该密钥将有一系列选项。在该数组的Item 0
中,将值设置为App plays audio
。
然后,修改~/PhoneGapLib/Classes/Sound.m
文件(您可以使用Finder搜索Sound.m
)。查找包含if ([resourceURL isFileURL]) {
的行。在该行的下方,在if语句中添加以下内容:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
因此,该部分代码如下所示:
if ([resourceURL isFileURL]) {
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
audioFile.player = [[ AVAudioPlayer alloc ] initWithContentsOfURL:resourceURL error:&error];
} else {
NSData* data = [NSData dataWithContentsOfURL:resourceURL];
audioFile.player = [[ AVAudioPlayer alloc ] initWithData:data error:&error];
}
答案 1 :(得分:0)
This plugin似乎解决了这个问题。