How to play video in ios swift

I am new to ios programming, actually I need to pass the video url, but I cannot pass the video url using avplayer, but using the downloaded avplayer file that I can play. The actual problem is that my file format is different for example my file name is like this song .apa but it is song.mp4

code:

let avplayerController = AVPlayerViewController()
var avPlayer:AVPlayer?

override func viewDidLoad()
{
    super.viewDidLoad()
    let movieUrl = URL.init(string: "http://techslides.com/demos/sample-videos/small.3gp")
    self.avPlayer = AVPlayer.init(url: movieUrl!)
    self.avplayerController.player = self.avPlayer
}

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

@IBAction func playVideo(_ sender: Any)
{
    self.present(self.avplayerController, animated: true) { 
     self.avplayerController.player?.play()
    }
}

      

+3


source to share


6 answers


In Swift 3



import Foundation
import AVFoundation
import MediaPlayer
import AVKit


func play()
    {
        let player = AVPlayer(url: "Your Url")
        let playerViewController = AVPlayerViewController()
        playerViewController.player = player
        self.present(playerViewController, animated: true)
        {
            playerViewController.player!.play()
        }


    }

      

+4


source


In Swift 3 try this code to play video in project

import UIKit
import AVKit
import AVFoundation
import MediaPlayer
import MobileCoreServices

class VideoPlayerViewController: UIViewController,AVPlayerViewControllerDelegate {

    //MARK: - Outlet -
    @IBOutlet weak var viewVidioPlayer: UIView!
    //MARK: - Variable

    //MARK: - View Life Cycle -
    override func viewDidLoad() {
        super.viewDidLoad()        
    }
    //MARK: - Action -
    //for Playing Video
    @IBAction func btnvideoPlayClicked(_ sender: UIButton) {
         self.videoPlay()
    }

    func videoPlay()
    {
        let playerController = AVPlayerViewController()
        playerController.delegate = self

        let bundle = Bundle.main
        let moviePath: String? = "http://techslides.com/demos/sample-videos/small.3gp"
        let movieURL = URL(fileURLWithPath: moviePath!)

        let player = AVPlayer(url: movieURL)
        playerController.player = player
        self.addChildViewController(playerController)
        self.view.addSubview(playerController.view)
        playerController.view.frame = self.view.frame

        player.play()

    }
    //MARK: - other Function -

    func playerViewControllerWillStartPictureInPicture(_ playerViewController: AVPlayerViewController){
        print("playerViewControllerWillStartPictureInPicture")
    }

    func playerViewControllerDidStartPictureInPicture(_ playerViewController: AVPlayerViewController)
    {
        print("playerViewControllerDidStartPictureInPicture")

    }
    func playerViewController(_ playerViewController: AVPlayerViewController, failedToStartPictureInPictureWithError error: Error)
    {
        print("failedToStartPictureInPictureWithError")
    }
    func playerViewControllerWillStopPictureInPicture(_ playerViewController: AVPlayerViewController)
    {
        print("playerViewControllerWillStopPictureInPicture")
    }
    func playerViewControllerDidStopPictureInPicture(_ playerViewController: AVPlayerViewController)
    {
        print("playerViewControllerDidStopPictureInPicture")
    }
    func playerViewControllerShouldAutomaticallyDismissAtPictureInPictureStart(_ playerViewController: AVPlayerViewController) -> Bool
    {
        print("playerViewControllerShouldAutomaticallyDismissAtPictureInPictureStart")
        return true
    }
}

      



I hope this works for you, thanks

+1


source


Here's an example of streaming video.

override func viewDidLoad() {
        super.viewDidLoad()
        let player = AVPlayer(url: URL(string: "http://techslides.com/demos/sample-videos/small.mp4")!)
        let controller = AVPlayerViewController()
        present(controller, animated: true) { _ in }
        controller.player = player
        addChildViewController(controller)
        view.addSubview(controller.view)
        controller.view.frame = CGRect(x: 50, y: 50, width: 300, height: 300)
        controller.player = player
        controller.showsPlaybackControls = true
        player.isClosedCaptionDisplayEnabled = false
        player.play()
    }

      

0


source


You cannot reproduce this particular link ( http://techslides.com/demos/sample-videos/small.3gp ) with AVPlayer or AVPlayerViewController because this file is in AMR (Adaptive Multi-Rate, Format for Speech) - which is not supported since iOS 4.3 Some of the 3gp files can be played, but only those with video and audio streams supported by Apple.

0


source


you can use YoutubePlayerView

to play YouTube videos, and for other formats you can use UIWebView

. To do this, just use a block if-else

,

if movieUrl.contains("youtube.com/") {
    var videoId: String = extractYoutubeId(fromLink: movieUrl)
    youtubePlayerView.load(withVideoId: videoId)
} else {  
    webView = UIWebView(frame: CGRect(x: 0, y: 0, width: 288, height: 277))  
    webView.delegate = self
    webView.backgroundColor = UIColor.black  
    webView?.loadRequest(movieUrl)
}

      

0


source


For Swift 3 play video from url

//AVPlayerViewControllerDelegate // example : class TestAudioVideoVC: UIViewController,AVPlayerViewControllerDelegate

func videoPlay()
    {
        let playerController = AVPlayerViewController()
        playerController.delegate = self

        let videoURL = NSURL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")

        let player = AVPlayer(url: videoURL! as URL)
        playerController.player = player
        self.addChildViewController(playerController)
        self.view.addSubview(playerController.view)
        playerController.view.frame = CGRect(x: 0, y: 64, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height - 64)
        playerController.showsPlaybackControls = true
        player.play()
    }

//MARK: - AVPlayerViewController Delegate -

    func playerViewControllerWillStartPictureInPicture(_ playerViewController: AVPlayerViewController){
        print("playerViewControllerWillStartPictureInPicture")
    }

    func playerViewControllerDidStartPictureInPicture(_ playerViewController: AVPlayerViewController)
    {
        print("playerViewControllerDidStartPictureInPicture")

    }
    func playerViewController(_ playerViewController: AVPlayerViewController, failedToStartPictureInPictureWithError error: Error)
    {
        print("failedToStartPictureInPictureWithError")
    }
    func playerViewControllerWillStopPictureInPicture(_ playerViewController: AVPlayerViewController)
    {
        print("playerViewControllerWillStopPictureInPicture")
    }
    func playerViewControllerDidStopPictureInPicture(_ playerViewController: AVPlayerViewController)
    {
        print("playerViewControllerDidStopPictureInPicture")
    }
    func playerViewControllerShouldAutomaticallyDismissAtPictureInPictureStart(_ playerViewController: AVPlayerViewController) -> Bool
    {
        print("playerViewControllerShouldAutomaticallyDismissAtPictureInPictureStart")
        return true
    }

      

0


source







All Articles