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

Posted

技术标签:

【中文标题】音频在后台播放但没有声音 Cordova 3+ IOS【英文标题】:Audio plays in background but no sound Cordova 3+ IOS 【发布时间】:2014-05-19 07:55:56 【问题描述】:

我正在播放一个 mp3 文件。我用过科尔多瓦 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 文件不像描述的那样存在。我在插件文件夹中找到了该文件。那些线靠近线号。 363

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

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

另外如果我使用 html5 音频播放器,我要如何处理这个“home key press”问题才能在最小化后播放音频?

【问题讨论】:

【参考方案1】:

首先,做我写的那些有问题的事情。然后将 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

还有

在真实设备中测试,而不是在模拟器中。背景音频不起作用 带模拟器。

【讨论】:

以上是关于音频在后台播放但没有声音 Cordova 3+ IOS的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap / Cordova 在后台 IOS 一段时间后停止音频

Html5 音频无法在 Cordova 应用程序中播放

Swift 3 如何覆盖静音模式并从后台播放音频

discord.js 机器人播放音频但没有声音?

HTML5 音频 - 录制保存文件正常,但通过音频控制播放时没有声音

是否可以在后台播放来自应用程序的声音