IOS7 - UIWebView:当应用程序进入后台时,HTML5音频暂停

时间:2014-01-27 01:09:51

标签: ios audio ios7 youtube html5-audio

这个问题不是这个问题的重复帖子UIWebView: HTML5 audio pauses in iOS 6 when app enters background

我可以从控制中心访问该曲目,但音频已停止。 如何避免暂停状态,或者如何在后台线程中重放曲目?

我的所有代码都在这里。您可以将代码粘贴到新的空ios应用程序的AppDelegate中

  • 添加AVFoundation框架
  • 启用背景音频
  • 我无效,它出现在控制中心,但当应用程序进入后台时音乐暂停!

    #import "AppDelegate.h"
    #import <AVFoundation/AVFoundation.h>
    @implementation AppDelegate
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.
    
        AVAudioSession *audioSession = [AVAudioSession sharedInstance];
        BOOL ok;
        NSError *setCategoryError = nil;
        ok = [audioSession setCategory:AVAudioSessionCategoryPlayback
                                 error:&setCategoryError];
        if (!ok) {
            NSLog(@"%s setCategoryError=%@", __PRETTY_FUNCTION__, setCategoryError);
        }
    
    
        UIViewController *vc = [[UIViewController alloc] init];
        UINavigationController* nav = [[UINavigationController alloc] initWithRootViewController: vc];
        self.window.rootViewController = nav;
    
    
        //WEBVIEW
        UIWebView *myWeb = [[UIWebView alloc] initWithFrame:CGRectMake(0, 200, 320, vc.view.frame.size.height)];
        myWeb.mediaPlaybackRequiresUserAction = NO;
        myWeb.allowsInlineMediaPlayback = YES;
        [vc.view addSubview:myWeb];
        NSURLRequest *request = [[NSURLRequest alloc] initWithURL: [NSURL URLWithString: @"http://www.romito.fr/public/inlineHTML5/"]];
        [myWeb loadRequest: request];
    
    
        self.window.backgroundColor = [UIColor whiteColor];
        [self.window makeKeyAndVisible];
        return YES;
    }
    

1 个答案:

答案 0 :(得分:0)

我尝试了你的示例代码,网址给了404.我尝试了以下网址和后台模式按预期工作。 http://hpr.dogphilosophy.net/test/

当我禁用背景音频时,背景音频按预期暂停。我已经提供了三种不同的方式来启用背景音频。

长话短说,你应该在你的plist中确认实际启用了背景音频。如果仍然无法获得,请发布更多代码。

Enabling background audio via Capabilities

Enabling background audio via plist

Enabling background audio via raw plist