dependencies: [
.package(url: "https://github.com/William-Weng/WWSwiftMobileVLC.git", .upToNextMajor(from: "1.0.0"))
]
import UIKit
import MobileVLCKit
final class ViewController: UIViewController {
private let mediaURL = "https://streams.videolan.org/streams/mp4/Mr_MrsSmith-h264_aac.mp4"
var mediaPlayer = VLCMediaPlayer()
override func viewDidLoad() {
super.viewDidLoad()
mediaPlayerSetting()
}
@objc func handlePlayPause(_ sender: UIBarButtonItem) {
if mediaPlayer.isPlaying {
playerButton(systemItem: .play)
mediaPlayer.pause()
} else {
playerButton(systemItem: .pause)
mediaPlayer.play()
}
}
}
extension ViewController: VLCMediaPlayerDelegate {
func mediaPlayerStateChanged(_ aNotification: Notification) {
if mediaPlayer.state == .stopped { view.backgroundColor = .white }
}
}
private extension ViewController {
func mediaPlayerSetting() {
guard let url = URL(string: mediaURL) else { return }
mediaPlayer.delegate = self
mediaPlayer.drawable = view
mediaPlayer.media = VLCMedia(url: url)
playerButton(systemItem: .play)
}
func playerButton(systemItem: UIBarButtonItem.SystemItem) {
navigationItem.rightBarButtonItem = UIBarButtonItem(
barButtonSystemItem: systemItem,
target: self,
action: #selector(Self.handlePlayPause)
)
navigationItem.rightBarButtonItem?.tintColor = .systemRed
}
}