Skip to content

William-Weng/WWNormalizeAudioPlayer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WWNormalizeAudioPlayer

Swift-5.7 iOS-15.0 TAG Swift Package Manager-SUCCESS LICENSE

dependencies: [
    .package(url: "https://github.com/William-Weng/WWNormalizeAudioPlayer.git", .upToNextMajor(from: "1.3.0"))
]

可用變數 (Parameter)

函式 功能
volume 調整音樂播放器音量 (0.0 ~ 1.0)
preferredFrameRateRange 設定更新的fps

可用函式 (Function)

函式 功能
play(with:targetDB:) 播放音樂
stop() 停止播放音樂
pause() 暫停播放(保留目前進度)
resume() 繼續播放(從暫停位置繼續)
currentTime() 取得當前播放時間 (秒)
totalTime() 取得總播放時間 (秒)

可用協定 (Deleagte)

函式 功能
audioPlayer(_:callbackType:didFinishPlaying:) 音樂播放完成
audioPlayer(_:audioFile:totalTime:currentTime:) 音樂播放進度
audioPlayer(_:error) 播放相關錯誤

可用擴展 (Extension)

函式 功能
_systemParameter() 檢查系統音量 + 是否靜音
setCategory(:mode:policy:options:isActive:) 設定要優化的功能 (播放 / 錄音 / …)

Example

import UIKit
import AVFoundation
import WWNormalizeAudioPlayer

final class ViewController: UIViewController {
    
    private let audioPlayer = WWNormalizeAudioPlayer()
    private let url = Bundle.main.url(forResource: "audio", withExtension: "mp3")!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        audioPlayer.delegate = self
        audioPlayer.play(with: url)
    }
}

extension ViewController: WWNormalizeAudioPlayer.Deleagte {
    
    func audioPlayer(_ player: WWNormalizeAudioPlayer, callbackType: AVAudioPlayerNodeCompletionCallbackType, didFinishPlaying audioFile: AVAudioFile) {
        print(callbackType)
    }
    
    func audioPlayer(_ player: WWNormalizeAudioPlayer, audioFile: AVAudioFile, totalTime: TimeInterval, currentTime: TimeInterval) {
        print(currentTime / totalTime)
    }
    
    func audioPlayer(_ player: WWNormalizeAudioPlayer, error: any Error) {
        print(error)
    }
}

About

Normalizing the volume of music files will prevent the volume from fluctuating.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages