ios - 音频在后台播放但没有声音 Cordova 3+ IOS

标签 ios html audio cordova background-audio

我正在播放 mp3 文件。我用 Cordova 3+ 我正在使用

snd = new Media(source,onSuccess,onplayError,mediaStatus);
snd.setVolume(current_volume);                      
snd.play();

一切顺利。然后我在 info.plist

中设置这些
Application does not run in background - NO
Required background modes:
Item0 - Audio...............etc.

然后我试了一下

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];
}

这是从这里找到的 http://www.joeldare.com/wiki/play_an_mp3_audio_stream_in_phonegap

虽然我发现 sound.m 文件并不像描述的那样存在。我在插件文件夹中找到了该文件。这些线靠近第 1 号线。 363

然后我尝试播放音频。接下来我按下了主页按钮。 iphone 模拟器没有声音。之后我再次按下应用程序图标,应用程序 ui 出现在前面,并且可以听到声音,好像一直在播放。意思是假设我在按下主页按钮 1 分钟后按下了应用程序图标,然后歌曲从当前 1 分钟开始播放。所以歌曲实际上正在播放,但在按下主页键后的那段时间听不到声音。希望我解释得当。

谁能告诉我我错过了什么?我希望即使在按下主页键或手机被锁定或显示屏关闭后也能听到声音。请帮忙..........

此外,如果我使用 html5 音频播放器,我需要做些什么来处理这个“home 键按下”问题以在最小化后播放音频?

最佳答案

首先,做那些我写的有问题的事情。然后将 AVFoundation 导入你的 AppDelegate.m #import <AVFoundation/AVFoundation.h>

然后将以下内容添加到application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
BOOL ok;
NSError *setCategoryError = nil;
ok = [audioSession setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError];

从这里找到https://github.com/devgeeks/ExampleHTML5AudioStreaming

TEST IN REAL DEVICE, NOT IN SIMULATOR. BACKGROUND AUDIO DOESN'T WORK WITH SIMULATOR.

关于ios - 音频在后台播放但没有声音 Cordova 3+ IOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23732463/

相关文章:

iphone - 禁用自动布局时 MKMapView 不出现

ios - 是否可以删除 Appium session (以及设备上的所有 Appium 资源),但让应用程序在 iOS(真实设备)上保持打开状态?

iphone - UIModalTransitionStylePartialCurl 不会触发 ViewWillAppear

javascript - 在 jQuery select 中获取未定义的值

audio - SoX不读Wav

android - 如何在Android上进行录音并进行音频和视频时间同步

audio - 如何使用 PortAudio 将交错缓冲区解析为不同的多 channel 缓冲区

ios - SWRevealViewController 右侧菜单

javascript - Internet Explorer 11 中 AngularJS v1.3.20 出现 InvalidStateError

jquery - 如何更改以前 sibling 的CSS