日安,
我的应用是一个音乐播放应用。我用Javascript控制<audio>-Tag。到目前为止,播放、暂停、下一步和上一步按钮都正常工作。当我在iOS 5中待机时,音乐仍在播放,但自动播放下一首歌曲不起作用。当它不处于待机状态时,它可以工作。而在iOS 6中,只要按下按钮,音乐就会淡出。
锁定屏幕上的播放/暂停按钮在iOS 5中可用,但在iOS 6中不起作用。
发布于 2012-09-14 05:00:18
从iOS 6开始,您必须在创建UIWebView之前将音频会话类别设置为“播放”。这就是您要做的全部工作。没有必要使会话处于活动状态。
这也应该用于html视频,因为如果你不配置会话,当振铃器开关关闭时,你的视频将被静音。
#import <AVFoundation/AVFoundation.h>
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
BOOL ok;
NSError *setCategoryError = nil;
ok = [audioSession setCategory:AVAudioSessionCategoryPlayback
error:&setCategoryError];
if (!ok) {
NSLog(@"%s setCategoryError=%@", __PRETTY_FUNCTION__, setCategoryError);
}确保您的目标链接到AVFoundation框架。
如果使用Cordova,您需要修改的文件是platforms/ios/MyApp/Classes/AppDelegate.m,并且最终将如下所示:
#import "AppDelegate.h"
#import "MainViewController.h"
#import <AVFoundation/AVFoundation.h>
@implementation AppDelegate
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
BOOL ok;
NSError *setCategoryError = nil;
ok = [audioSession setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError];
if (!ok) {
NSLog(@"%s setCategoryError=%@", __PRETTY_FUNCTION__, setCategoryError);
}
self.viewController = [[MainViewController alloc] init];
return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
@end此外,正如注释中所提到的,您需要按照this answer中的说明链接AVFoundation框架
open ./platforms/ios/MyApp.xcworkspace/ 发布于 2015-02-05 09:51:10
这个插件会让你的应用忽略静音开关。它基本上与其他答案中的代码相同,但它被很好地包装在一个插件中,这样你就不需要做任何手动的目标c编辑。
https://github.com/EddyVerbruggen/cordova-plugin-backgroundaudio
运行以下命令将其添加到您的项目中:
cordova plugin add https://github.com/EddyVerbruggen/cordova-plugin-backgroundaudio.git发布于 2016-03-04 11:39:31
Swift语法:
在AppDelegate中:
import AVFoundation
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
do{
let audio = AVAudioSession.sharedInstance()
try audio.setCategory(AVAudioSessionCategoryPlayback)
}catch let error as NSError{
print(error)
}
}https://stackoverflow.com/questions/11616001
复制相似问题