iOS 개발 중 오디 오 영상 재생 의 간단 한 실현 방법
저 희 는 평소에 iOS 개발 에서 음성 과 동 영상 을 재생 하 는 데 여러 가지 가 있 습 니 다.현재 시스템 은 자체 적 으로 AVFoundation 프레임 워 크 에 속 하고 밑바닥 에 가 깝 기 때문에 유연성 이 강하 고 사용자 정의 가 더욱 편리 합 니 다.
그리고 바로 제3 방음 영상 영상 재생 입 니 다.기능 이 강하 고 간단 하 며 스 트 리밍 을 지원 하 는 것 이 특징 입 니 다.다음은 하나씩 소개 하고 참고 학습 을 하 겠 습 니 다.다음은 상세 한 소 개 를 보 겠 습 니 다.
재생 시스템
주의:
이곳 의 자원 길 이 는 최대 30 초
if let soundURL = Bundle.main.url(forResource: "sourceName", withExtension: "wav") {
var mySound: SystemSoundID = 0
AudioServicesCreateSystemSoundID(soundURL as CFURL, &mySound)
// Play
AudioServicesPlaySystemSound(mySound);
}
음악 재생-AVAudioPlayer
//
fileprivate var player: AVAudioPlayer?
음악 을 초기 화하 고 재생 하기 시작 합 니 다.
func playMusic() {
// 2.
guard let fileUrl = Bundle.main.url(forResource: "309769", withExtension: "mp3") else {
return }
// 3.
do {
player = try AVAudioPlayer(contentsOf: fileUrl)
} catch {
print(error)
}
//
player?.delegate = self
// 4.
player?.prepareToPlay()
// 5.
player?.play()
}
멈추다
// 、
player?.stop()
모니터 AVAudioPlayer 재생 완료
// MARK: - AVAudioPlayerDelegate
extension ViewController: AVAudioPlayerDelegate {
///
func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) {
if flag {
print(" ")
}
}
}
AVPlayer 로 영상 재생 하기AVPlayer 대상 을 전역 으로 설정 해 야 합 니 다.그렇지 않 으 면 재생 이 되 지 않 습 니 다.
AVPlayer 는 AVFoundation 에 존재 하 며 음악,로 컬 오디 오,스 트 리밍 을 재생 할 수 있 습 니 다.
그러나 이 는 화면 을 마주 보 는 것 이 매우 자 유 롭 고 화면 재생 인터페이스 를 사용자 정의 할 수 있다.
재생 진행 상황 및 관련 매개 변수 알림 을 통 해
AVPlayer 3 요소
AVPlayerItem(데이터 제공,데이터 원본 설정)AVPlayer(재생 제어,일시 정지,재생,지 정 된 시간 재생 등 담당)
func playVideo() {
// 1. AVPlayer
guard let url = URL(string: "http://baobab.wdjcdn.com/14559682994064.mp4") else { return }
// 2.
// ,
let item = AVPlayerItem(url: url)
// , 、 、
let player = AVPlayer(playerItem: item)
// 3. ,
let layer = AVPlayerLayer(player: player)
layer.frame = playerView.bounds
playerView.layer.addSublayer(layer)
// 4.
player.play()
}
IJK MediaFramework 를 사용 하여 동 영상 재생ijkPLAyer 는 Bilibili 가 ffmpeg 를 기반 으로 개발 하고 오픈 한 경량급 비디오 플레이어 로 로 로 컬 네트워크 영상 재생 도 지원 하고 스 트 리밍 도 지원 합 니 다.
기능 이 매우 강해 서 비디오 의 소프트 디 코딩 과 하 드 디 코딩 을 지원 합 니 다.
IJKKMediaFramework.framework SDK 를 수 동 으로 가 져 오고 libz.tbd 의존 도 를 추가 합 니 다.
import IJKMediaFramework
재생 기 를 초기 화하 고 재생 하기
func playVideoByIJKPlayer() {
// 1. ,
let options = IJKFFOptions.byDefault()
options?.setOptionIntValue(1, forKey: "videotoolbox", of: kIJKFFOptionCategoryPlayer)
// 2.
guard let ijkPlayer = IJKFFMoviePlayerController(contentURLString: "http://baobab.wdjcdn.com/14559682994064.mp4", with: options) else { return }
ijkPlayer.view.frame = playerView.bounds
playerView.addSubview(ijkPlayer.view)
// 3.
ijkPlayer.prepareToPlay()
}
총결산이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swift의 패스트 패스Objective-C를 대체하기 위해 만들어졌지만 Xcode는 Objective-C 런타임 라이브러리를 사용하기 때문에 Swift와 함께 C, C++ 및 Objective-C를 컴파일할 수 있습니다. Xcode는 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.