Playing a video file from a server in Swift

前端 未结 4 1782
没有蜡笔的小新
没有蜡笔的小新 2020-12-07 12:42

I\'m trying to play a video from a server using Swift.

I have imported MediaPlayer framework, here is my code:

import UIKit
import M         


        
相关标签:
4条回答
  • 2020-12-07 12:49
    import AVKit
    import AVFoundation
    
    class VideoController: UIViewController
    
    override func viewDidLoad()
    
        {
           let videoURL = NSURL(string: "VideoUr")
            let player = AVPlayer(url: videoURL! as URL)
            let playerViewController = AVPlayerViewController()
            playerViewController.player = player
            self.present(playerViewController, animated: true) {
                playerViewController.player!.play()
            }
    
    
        }
    
    0 讨论(0)
  • 2020-12-07 12:58

    Import the libraries:

    import AVKit
    import AVFoundation
    import MediaPlayer
    import AudioToolbox   
    

    Set delegaete like this

    AVPlayerViewControllerDelegate
    

    Wrtie pretty code where you want to play like button action:

    let videoURL = URL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
        let player = AVPlayer(url: videoURL!)
        let playervc = AVPlayerViewController()
        playervc.delegate = self
        playervc.player = player
        self.present(playervc, animated: true) {
            playervc.player!.play()
        }
    

    100% working and test

    0 讨论(0)
  • 2020-12-07 13:01

    I just was having the same issues..

    MPMoviePlayerController Stops Playing After 5 seconds - Swift

    The issue is your var moviePlayer is going out of scope. By declaring it outside of viewDidLoad like @Victor-Sigler did above, you prevent the black screen issue from happening.

    0 讨论(0)
  • 2020-12-07 13:09

    UPDATE 2019, Swift 4:

    MPMovieControlStyle' was deprecated in iOS 9.0: Use AVPlayerViewController in AVKit.

    So, following the advice, let's change it. Original answer from 2016 is below.

    import UIKit
    import AVKit
    import AVFoundation
    
    class ViewController: UIViewController {
    
        override func viewDidAppear(_ animated: Bool) {
            super.viewDidAppear(animated)
    
            let url = URL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")!
    
            playVideo(url: url)
        }
    
        func playVideo(url: URL) {
            let player = AVPlayer(url: url)
    
            let vc = AVPlayerViewController()
            vc.player = player
    
            self.present(vc, animated: true) { vc.player?.play() }
        }
    }
    

    Solved:

    import UIKit
    import MediaPlayer
    
    class VideoViewController: UIViewController {
    
       var moviePlayer:MPMoviePlayerController!
    
       override func viewDidLoad() {
          super.viewDidLoad()
    
          let url:NSURL = NSURL(string: "http://jplayer.org/video/m4v/Big_Buck_Bunny_Trailer.m4v")
    
          moviePlayer = MPMoviePlayerController(contentURL: url)
          moviePlayer.view.frame = CGRect(x: 20, y: 100, width: 200, height: 150)
    
          self.view.addSubview(moviePlayer.view)
          moviePlayer.fullscreen = true
    
          moviePlayer.controlStyle = MPMovieControlStyle.Embedded
    
       }
    }
    
    0 讨论(0)
提交回复
热议问题