[swift] 스위프트에서 음악 재생 컨트롤 구현하기

스위프트는 음악 재생을 위한 강력한 기능을 제공합니다. 이 기능을 사용하여 음악을 플레이하고 일시정지하며, 이동 및 음량 조절을 할 수 있습니다. 이번 블로그 포스트에서는 AVFoundation framework를 사용하여 iOS 앱에서 음악을 재생하고 컨트롤하는 방법을 알아보겠습니다.

AVFoundation 이란?

AVFoundation은 오디오, 비디오 및 멀티미디어 콘텐츠를 처리하기 위한 프레임워크로, iOS 및 macOS에서 사용할 수 있습니다. 이 프레임워크를 사용하면 오디오 파일을 재생하고, 녹음하며, 편집하는 등 다양한 멀티미디어 작업을 할 수 있습니다.

기본적인 음악 재생 구현하기

먼저, AVFoundation을 사용하여 기본적인 음악 재생 기능을 구현해보겠습니다.

import AVFoundation

class MusicPlayer {
    var player: AVAudioPlayer?

    func playMusic() {
        guard let url = Bundle.main.url(forResource: "music", withExtension: "mp3") else { return }
        
        do {
            try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default)
            try AVAudioSession.sharedInstance().setActive(true)

            player = try AVAudioPlayer(contentsOf: url, fileTypeHint: AVFileType.mp3.rawValue)

            player?.play()
        } catch let error {
            print(error.localizedDescription)
        }
    }
}

위 코드에서는 AVAudioPlayer를 사용하여 음악 파일을 로딩하고 재생하는 기능을 구현했습니다.

음악 컨트롤 추가하기

이어서, 음악을 일시정지하거나 이동하는 등의 컨트롤을 추가해보겠습니다.

extension MusicPlayer {
    func pauseMusic() {
        player?.pause()
    }
    
    func stopMusic() {
        player?.stop()
        player = nil
    }
    
    func seek(to time: TimeInterval) {
        player?.currentTime = time
    }
    
    func adjustVolume(to value: Float) {
        player?.volume = value
    }
}

위의 음악 컨트롤 기능을 추가한 코드는 pauseMusic, stopMusic, seek, adjustVolume 메서드를 사용하여 음악을 일시정지하고, 멈추거나, 이동하거나, 음량을 조절하는 기능을 제공합니다.

이와 같이 AVFoundation을 사용하면 iOS 앱에서 강력한 음악 재생 및 컨트롤 기능을 손쉽게 구현할 수 있습니다.

위에서 소개한 코드 및 기능들은 참고용으로 작성된 것이며, 상황에 맞게 적절히 수정하여 사용하시기 바랍니다.

읽어주셔서 감사합니다!

AVFoundation 공식 문서