Swift 正在播放来自 url 的音频
Swift audio playing from url
import AVFoundation
import UIKit
class ViewController: UIViewController {
@IBOutlet var button: UIButton!
var player: AVPlayer?
var playerItem:AVPlayerItem?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func didTapButton(urlRadio: String){
if let player = player, player.isMuted{
//stop playback
}
else{
do {
try AVAudioSession.sharedInstance().setMode(.default)
try AVAudioSession.sharedInstance().setActive(true, options: .notifyOthersOnDeactivation)
guard let urlRadio = URL.init(string: "http://live.shtorm.fm:8000/mp3_rushtorm") else {
return
}
let playerItem:AVPlayerItem = AVPlayerItem.init(url: urlRadio)
player = AVAudioPlayer.init(playerItem: playerItem)
}
catch {
print("something went wrong")
}
}
}
}
显示错误 异常 NSException *“-[RozetkaRadio.ViewController didTapButton]:无法识别的选择器发送到实例 0x7ff070f07a50”0x00006000008c7210 在模拟器中按下按钮后
使用故事板
您的问题出在这行代码上。具体来说,参数urlRadio.
@IBAction func didTapButton(urlRadio: String){
您似乎更改了 Storyboard 中设置的标准 IBAction。您无法更改 IBAction 中的参数,因为故事板不再识别将点击发送到何处。
您的 IBAction 应如下所示
@IBAction func didTapButton(_ sender: Any)
每当您看到发送到实例的无法识别的选择器时,您应该立即想到“我的故事板和我的 ViewController 之间有些东西没有正确连接”
一种快速查看方法是在故事板上右键单击您的控制器场景名称。您可以看到我注释掉了 SignIn IBAction 函数。如果我想删除它,我还必须删除故事板上的连接。你可以看到故事板会通过留下黄色警告标签让我知道。
import AVFoundation
import UIKit
class ViewController: UIViewController {
@IBOutlet var button: UIButton!
var player: AVPlayer?
var playerItem:AVPlayerItem?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func didTapButton(urlRadio: String){
if let player = player, player.isMuted{
//stop playback
}
else{
do {
try AVAudioSession.sharedInstance().setMode(.default)
try AVAudioSession.sharedInstance().setActive(true, options: .notifyOthersOnDeactivation)
guard let urlRadio = URL.init(string: "http://live.shtorm.fm:8000/mp3_rushtorm") else {
return
}
let playerItem:AVPlayerItem = AVPlayerItem.init(url: urlRadio)
player = AVAudioPlayer.init(playerItem: playerItem)
}
catch {
print("something went wrong")
}
}
}
}
显示错误 异常 NSException *“-[RozetkaRadio.ViewController didTapButton]:无法识别的选择器发送到实例 0x7ff070f07a50”0x00006000008c7210 在模拟器中按下按钮后
使用故事板
您的问题出在这行代码上。具体来说,参数urlRadio.
@IBAction func didTapButton(urlRadio: String){
您似乎更改了 Storyboard 中设置的标准 IBAction。您无法更改 IBAction 中的参数,因为故事板不再识别将点击发送到何处。
您的 IBAction 应如下所示
@IBAction func didTapButton(_ sender: Any)
每当您看到发送到实例的无法识别的选择器时,您应该立即想到“我的故事板和我的 ViewController 之间有些东西没有正确连接”
一种快速查看方法是在故事板上右键单击您的控制器场景名称。您可以看到我注释掉了 SignIn IBAction 函数。如果我想删除它,我还必须删除故事板上的连接。你可以看到故事板会通过留下黄色警告标签让我知道。