加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

iOS swift流媒体应用程序无法在后台模式播放音乐

发布时间:2020-12-14 18:00:50 所属栏目:百科 来源:网络整理
导读:我的应用程序运行正常,但是一旦屏幕保护程序打开或在iPhone上执行其他操作,流就会停止.我激活后台模式“正在播放音频”但它没有帮助. 这是我的ViewController.swift import UIKitimport MediaPlayerclass ViewController: UIViewController { let player: MP
我的应用程序运行正常,但是一旦屏幕保护程序打开或在iPhone上执行其他操作,流就会停止.我激活后台模式“正在播放音频”但它没有帮助.

这是我的ViewController.swift

import UIKit
import MediaPlayer

class ViewController: UIViewController {
    let player: MPMoviePlayerViewController = MPMoviePlayerViewController(contentURL: NSURL(string: "http://url to my stream"))

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view,typically from a nib.
        player.moviePlayer.movieSourceType = .Streaming
        self.presentViewController(player,animated: true,completion: nil)

        loadAddressURL()
    }

    func stop() {
        player.moviePlayer.stop()
    }
    @IBAction func Hitplay(sender: AnyObject) {
        player.moviePlayer.play()
    }

    @IBAction func Hitpause(sender: AnyObject) {
        player.moviePlayer.stop()
    }

    @IBOutlet var Nowplay: UIWebView!
    var URLPath = "http://url to on air now"

    func loadAddressURL() {
        let requestURL = NSURL (string:URLPath)
        let request = NSURLRequest (URL: requestURL!)
        Nowplay.loadRequest(request)
    }
}

这是我的info.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-      1.0.dtd">
<plist version="1.0">
<dict>
 <key>CFBundleDevelopmentRegion</key>
 <string>en</string>
 <key>CFBundleExecutable</key>
 <string>$(EXECUTABLE_NAME)</string>
 <key>CFBundleIdentifier</key>
<string>com.product name.$(PRODUCT_NAME:rfc1034identifier)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIBackgroundModes</key>
<array>
    <string>audio</string>
</array>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
    <string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationPortraitUpsideDown</string>
</array>
</dict>

解决方法

设置音频背景模式是正确的,但我认为您还需要为音频会话设置音频类别.

尝试将此添加到您的应用委托的didFinishLaunchingWithOptions:

var activeError: NSError? = nil
AVAudioSession.sharedInstance().setActive(true,error: &activeError)

if let actError = activeError {
  NSLog("Error setting audio active: (actError.code)")
}

var categoryError: NSError? = nil
AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback,error: &categoryError)

if let catError = categoryError {
  NSLog("Error setting audio category: (catError.code)")
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读