我需要在线流广播http://www.vdee.org:8000/salinas的帮助。到目前为止我有这段代码

时间:2019-07-17 03:25:29

标签: swift audio-streaming

我需要流式传输在线广播电台以使用swift将其放入ios应用。我的正在运行,但没有在玩。

var player:AVPlayer?
var playerItem:AVPlayerItem?
var playButton:UIButton?

override func viewDidLoad() {
    super.viewDidLoad()
}

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    let url = URL(string: "http://www.vdee.org:8000/salinasMim")
    let playerItem:AVPlayerItem = AVPlayerItem(url: url!)
    player = AVPlayer(playerItem: playerItem)

    let playerLayer=AVPlayerLayer(player: player!)
    playerLayer.frame=CGRect(x:0, y:0, width:10, height:50)
    self.view.layer.addSublayer(playerLayer)

    playButton = UIButton(type: UIButton.ButtonType.system) as UIButton
    let xPostion:CGFloat = 50
    let yPostion:CGFloat = 100
    let buttonWidth:CGFloat = 150
    let buttonHeight:CGFloat = 45

    playButton!.frame = CGRect(x: xPostion, y: yPostion, width: buttonWidth, height: buttonHeight)
    playButton!.backgroundColor = UIColor.lightGray
    playButton!.setTitle("Play", for: UIControl.State.normal)
    playButton!.tintColor = UIColor.black
    playButton!.addTarget(self, action: #selector(ViewController.playButtonTapped(_:)), for: .touchUpInside)

    self.view.addSubview(playButton!)
}

@objc func playButtonTapped(_ sender:UIButton)
{
    if player?.rate == 0
    {
        player!.play()
        //playButton!.setImage(UIImage(named: "player_control_pause_50px.png"), forState: UIControlState.Normal)
        playButton!.setTitle("Pause", for: UIControl.State.normal)
    } else {
        player!.pause()
        //playButton!.setImage(UIImage(named: "player_control_play_50px.png"), forState: UIControlState.Normal)
        playButton!.setTitle("Play", for: UIControl.State.normal)
    }
}

2 个答案:

答案 0 :(得分:1)

我检查了您的代码。它可以在低于VOD的内容下正常工作,并且也可以与DTV内容一起工作。

    https://cstr-vod.castr.io/vdafddac30977c11e9bdcb/71983cc5-f510-4b36-b77a-fc3d216e15d3/index.m3u8
    http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8

我无法从您的网址获得回复:http://www.vdee.org:8000/salinasMim

请使用以下URL:http://www.vdee.org:8000/salinas 此DTV内容运行正常,请检查。您只能将音频作为音频内容收听。

答案 1 :(得分:0)

var player:AVPlayer?
var playerItem:AVPlayerItem?
var playButton:UIButton?

override func viewDidLoad() {
    super.viewDidLoad()
}

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    //https://cstr-vod.castr.io/vdafddac30977c11e9bdcb/71983cc5-f510-4b36-b77a-fc3d216e15d3/index.m3u8
    //http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8
    let url = URL(string: "http://www.vdee.org:8000/salinas")
    let playerItem:AVPlayerItem = AVPlayerItem(url: url!)
    player = AVPlayer(playerItem: playerItem)

    let playerLayer=AVPlayerLayer(player: player!)
    playerLayer.frame=CGRect(x:0, y:0, width:10, height:50)
    self.view.layer.addSublayer(playerLayer)

    playButton = UIButton(type: UIButton.ButtonType.system) as UIButton
    let xPostion:CGFloat = 50
    let yPostion:CGFloat = 100
    let buttonWidth:CGFloat = 150
    let buttonHeight:CGFloat = 45

    playButton!.frame = CGRect(x: xPostion, y: yPostion, width: buttonWidth, height: buttonHeight)
    playButton!.backgroundColor = UIColor.lightGray
    playButton!.setTitle("Play", for: UIControl.State.normal)
    playButton!.tintColor = UIColor.black
    playButton!.addTarget(self, action: #selector(ViewController.playButtonTapped(_:)), for: .touchUpInside)

    self.view.addSubview(playButton!)
}

@objc func playButtonTapped(_ sender:UIButton)
{
    if player?.rate == 0
    {
        player!.play()
        //playButton!.setImage(UIImage(named: "player_control_pause_50px.png"), forState: UIControlState.Normal)
        playButton!.setTitle("Pause", for: UIControl.State.normal)
    } else {
        player!.pause()
        //playButton!.setImage(UIImage(named: "player_control_play_50px.png"), forState: UIControlState.Normal)
        playButton!.setTitle("Play", for: UIControl.State.normal)
    }
}