iOS 개발 중 오디 오 영상 재생 의 간단 한 실현 방법

머리말
저 희 는 평소에 iOS 개발 에서 음성 과 동 영상 을 재생 하 는 데 여러 가지 가 있 습 니 다.현재 시스템 은 자체 적 으로 AVFoundation 프레임 워 크 에 속 하고 밑바닥 에 가 깝 기 때문에 유연성 이 강하 고 사용자 정의 가 더욱 편리 합 니 다.
그리고 바로 제3 방음 영상 영상 재생 입 니 다.기능 이 강하 고 간단 하 며 스 트 리밍 을 지원 하 는 것 이 특징 입 니 다.다음은 하나씩 소개 하고 참고 학습 을 하 겠 습 니 다.다음은 상세 한 소 개 를 보 겠 습 니 다.
재생 시스템
주의:
이곳 의 자원 길 이 는 최대 30 초
  • 자원 은 Target-->Build Phases-->Copy Bundle Resources 에 자원 파일 을 도입 해 야 합 니 다.그렇지 않 으 면 파일 을 가 져 올 수 없습니다
  • 
    if let soundURL = Bundle.main.url(forResource: "sourceName", withExtension: "wav") {
     var mySound: SystemSoundID = 0
     AudioServicesCreateSystemSoundID(soundURL as CFURL, &mySound)
     // Play
     AudioServicesPlaySystemSound(mySound);
    }
    음악 재생-AVAudioPlayer
  • 자원 은 Target-->Build Phases-->Copy Bundle Resources 에 자원 파일 을 도입 해 야 합 니 다.그렇지 않 으 면 파일 을 가 져 올 수 없습니다
  • 4.567917.다양한 오디 오 형식 을 지원 하고 진도,볼 륨,재생 속도 등 을 제어 할 수 있 습 니 다재생 기 속성 정의
    
    //          
    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(재생 제어,일시 정지,재생,지 정 된 시간 재생 등 담당)
  • AVPlayerLayer(디 스 플레이 가 부족 하면 음성 만 동 영상 이 없 음)
  • 
    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()
    }
    총결산
    이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

    좋은 웹페이지 즐겨찾기