gpt4 book ai didi

ios - UIWebView:当应用程序进入后台时,HTML5 音频在 iOS 6 中暂停

转载 作者:IT王子 更新时间:2023-10-29 07:52:16 26 4
gpt4 key购买 nike

你好,

我的应用是一个音乐播放应用。我控制 <audio> - 使用 Javascript 标记。到目前为止没有问题,播放、暂停、下一个和上一个按钮都可以使用。当我在 iOS 5 中待机时,音乐继续播放,但自动下一首歌曲不起作用。当它不处于待机状态时,它会工作。在 iOS 6 中,只需按下按钮,音乐就会淡出。

锁屏上的播放/暂停按钮在 iOS 5 中有效,但在 iOS 6 中无效。

最佳答案

从 iOS 6 开始,您必须在创建 UIWebView 之前将 Audio Session 类别设置为“播放”。这就是您所要做的。无需激活 session 。

这也应该用于 html 视频,因为如果您不配置 session ,您的视频将在铃声开关关闭时静音。

#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

此外,如评论中所述,您需要链接 AVFoundation 框架,如 this answer 中所述。 :

  • 用xcode打开你的项目 open ./platforms/ios/MyApp.xcworkspace/
  • Project navigator > target My App > General
  • 滚动到底部找到链接的框架和库

关于ios - UIWebView:当应用程序进入后台时,HTML5 音频在 iOS 6 中暂停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11616001/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com