coiai Logo
coiai

Vision OS 音量をコントロールする

❓ これは何

VisionOS での音(AudioPlaybackController)を Slider を使って音量をコントロールする方法についてです。

🪴 環境

  • sonoma 14.5(23F79)
  • Apple M1
  • 16GB

🛠️ やり方

今回は自然の音を再生するアプリを例に作っていきます。

NatureEntity.swift

import SwiftUI
import RealityKit

class NatureEntity: Entity {
    private var fireAudioController: AudioPlaybackController?
    
    @MainActor required init() {
        super.init()
    }
    
    init(fireAudio: AudioPlaybackController?, rainAudio: AudioPlaybackController?, insectAudio: AudioPlaybackController?) {
        super.init()
        self.fireAudioController = fireAudio
    }
    
    func updateGlobalVolume(_ volume: Double) {
        fireAudioController?.gain = volume
    }
}

続いて、Sliderでの操作部分の作成です。

NatureControls.swift

import SwiftUI

struct NatureControls: View {
    @Binding var globalVolume: Float
    
    var body: some View {
        VStack {
            Text("Global Volume")
            Slider(value: $globalVolume, in: 0...1)
                .padding()
        }
    }
}

最後に、これらをまとめて表示する部分です。

SoundView.swift

import SwiftUI
import RealityKit

struct SoundView: View {
    @State private var globalVolume: Double = -10
    @State private var natureEntity: NatureEntity?

    var body: some View {
        ZStack {
            RealityView { content in
                let natureEntity = NatureEntity(fireAudio: nil) // 実際のオーディオコントローラーを渡す
                content.add(natureEntity)
                self.natureEntity = natureEntity
            }
            
            NatureControls(globalVolume: $globalVolume)
                .onChange(of: globalVolume) { volume in
                    natureEntity?.updateGlobalVolume(volume)
                }
                .padding()
                .background(Color.black.opacity(0.7))
                .cornerRadius(10)
                .padding()
        }
    }
}

これで、音量調整のできる機能が備わったと思います。

ポイントは fireAudioController?.gain = volume という部分で、
音量調整は gain で行うということです。Doubleで渡してあげたところうまくいきました。

投稿日: 2024年7月4日
カテゴリ: SwiftUI, Vision OS
タグ: apple, Swift, Vision OS
coiai

coiai

この記事もおすすめ

この記事を書いた会社

株式会社coiaiは、「想像できることを美しく実現」を掲げ、XR・Web・アプリ・システム開発およびDX支援を行う会社です。 創業2022年、東京都練馬区に本社を置き、要件のヒアリングからPoC(概念実証)、本番運用まで一貫して伴走します。 まずはお気軽にご相談ください。

商号株式会社 coiai創業2022年1月設立2025年1月23日資本金1,500,000円(設立時点)本社所在地東京都練馬区関町北 3-6-9代表者代表取締役 竹村 啓佑 / 代表取締役 服部 陽良

主なご相談内容

会社概要・役員紹介を見る

詳しい会社情報は会社概要ページでご覧いただけます。

資料請求・無料相談

導入要件のヒアリングからPoC、本番運用まで伴走します。まずはお気軽にご相談ください。

お問い合わせの前に 個人情報保護方針 をご確認ください。