2017-09-04 6 views
1

私はそこにWKWebViewを持っています。そして私はjsで効果音を演奏しますが、私がそうするとき、バックグラウンドミュージックは停止します。私はSpotifyのようなバックグラウンドミュージックとこのサウンドエフェクトをミックスしています。WKWebviewのAVAudioSessionカテゴリを設定する

どうすればいいですか?

これは、私はこれが不可能であることを見出したViewController.swift

import WebKit 
 
import AVFoundation 
 

 
class ViewController: UIViewController, WKNavigationDelegate { 
 
    
 
    var webView: WKWebView! 
 
    
 
    override func loadView() { 
 
     webView = WKWebView() 
 
     webView.navigationDelegate = self 
 
     
 
     
 
     // Set so play inline works 
 
     let webConfiguration = WKWebViewConfiguration() 
 
     webConfiguration.allowsInlineMediaPlayback = true 
 
     if #available(iOS 10.0, *) { 
 
      webConfiguration.mediaTypesRequiringUserActionForPlayback = [] 
 
     } else { 
 
      // Fallback on earlier versions 
 
      webConfiguration.mediaPlaybackRequiresUserAction = false 
 
     } 
 
     webView = WKWebView(frame: CGRect.zero, configuration: webConfiguration) 
 
     
 
     //super.init(coder: aDecoder) 
 
     
 
     view = webView 
 
     
 
    } 
 
    
 

 
    override func viewDidLoad() { 
 
     super.viewDidLoad() 
 
     // Do any additional setup after loading the view, typically from a nib. 
 
     
 
     // Set so we can play sound effect without stop background music 
 
     
 
     
 
     // Get the local lang from iphone 
 
     var locale = Locale.preferredLanguages[0] 
 
     if (locale.contains("-")) { 
 
      locale = locale.substring(to: locale.characters.index(locale.startIndex, offsetBy: 2)) 
 
     } 
 
     
 
     
 
     let url = URL(string: "https://test.com/?lang=" + locale)! 
 
     webView.load(URLRequest(url: url)) 
 
     webView.allowsBackForwardNavigationGestures = true 
 
     
 
     // add background color to wkwebview to transparent 
 
     webView.backgroundColor = UIColor.clear 
 
     webView.scrollView.backgroundColor = UIColor.clear 
 
     
 
     
 
     // Change the statusbar to vit 
 
     UIApplication.shared.statusBarStyle = .lightContent 
 
     
 
    } 
 

 
    override func didReceiveMemoryWarning() { 
 
     super.didReceiveMemoryWarning() 
 
     // Dispose of any resources that can be recreated. 
 
    } 
 

 

 
}

答えて

関連する問題