如何在 iOS 中播放音频和视频文件?


了解如何在 iOS 中播放音频和视频非常重要,因为如今几乎每个应用程序都包含音频和视频。从您的游戏应用程序到社交媒体再到您的音乐播放器等等。

在本篇文章中,我们将学习如何使用 Swift 播放音频和视频文件。

那么让我们开始吧。

步骤 1 - 打开 Xcode → 新建项目 → 单视图应用程序 → 让我们将其命名为“AudioVideo”。

步骤 2 - 打开 Main.storyboard 并添加三个按钮,并将其命名如下所示。

步骤 3 - 为这三个按钮创建 @IBOutlet,并将其命名为 stop、playButton 和 video button,顾名思义,它们将用于播放声音、停止声音和播放视频。

步骤 4 - 我们将使用苹果提供的 AVFoundation 框架,AVFoundation 框架结合了四个主要技术领域,这些领域共同涵盖了在 Apple 平台上捕获、处理、合成、控制、导入和导出视听媒体的广泛任务。

步骤 5 - 导航到您的项目构建阶段,并添加 AVFoundation 框架,如所示。

步骤 6 - 在您的项目目录中添加您希望播放的 mp3/音频文件。

步骤 7 - 在您的 ViewController.swift 中导入框架,

import AVFoundation

步骤 8 - 创建 AVAudioPlayer 的对象。

var avPlayer = AVAudioPlayer()

步骤 9 - 在 play 按钮的 IBAction 中编写以下代码。

@IBAction func playButton(_ sender: Any) {
   guard let url = Bundle.main.url(forResource: "sample", withExtension: "mp3")
   else {
      return
   }
   do {
      avPlayer = try AVAudioPlayer(contentsOf: url)
      avPlayer.play()
   }
   catch {
   }
}

步骤 10 - 在 stop 按钮的 IBAction 中编写以下代码行

@IBAction func stop(_ sender: Any) {
   avPlayer.stop()
}

步骤 11 - 在 video 按钮中编写以下代码

@IBAction func videoButton(_ sender: Any) {
   let path = Bundle.main.path(forResource: "one", ofType: "mp4")
   let videoUrl = URL(fileURLWithPath: path!)
   let player = AVPlayer(url: videoUrl as URL)
   let playerLayer = AVPlayerLayer(player: player)
   playerLayer.frame = self.view.bounds
   self.view.layer.addSublayer(playerLayer)
   player.play()
}

运行应用程序以播放音频和视频。

完整代码

示例

import UIKit
import AVFoundation
class ViewController: UIViewController {
   var avPlayer = AVAudioPlayer()
   override func viewDidLoad() {
      super.viewDidLoad()
   }
   @IBAction func stop(_ sender: Any) {
      avPlayer.stop()
   }
   @IBAction func playButton(_ sender: Any) {
      UIScreen.main.brightness = 0.6
      guard let url = Bundle.main.url(forResource: "sample", withExtension: "mp3")
      else {
         return
      }
      do {
         avPlayer = try AVAudioPlayer(contentsOf: url)
         avPlayer.play()
      }
      catch {
      }
   }
   @IBAction func videoButton(_ sender: Any) {
      let path = Bundle.main.path(forResource: "one", ofType: "mp4")
      let videoUrl = URL(fileURLWithPath: path!)
      let player = AVPlayer(url: videoUrl as URL)
      let playerLayer = AVPlayerLayer(player: player)
      playerLayer.frame = self.view.bounds
      self.view.layer.addSublayer(playerLayer)
      player.play()
   }
}

更新于: 2019年7月30日

909 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.