LoginSignup
3
4

【SwiftUI】端末の音量を強制的に変更する方法【iOSアプリ】

Posted at

この記事によると、iOSはアプリから端末の音量を操作できないようになっているそうだ。
しかし、StackOverflowを参考にすると、無理やりではあるが、音量を変更できるそうだ。その方法と注意点を紹介する。

  • Swift 5
  • Version 15.3
  • iOS17.3で動作確認

さっそく、そのコードを見てほしい。

コード

import MediaPlayer

extension MPVolumeView {
    static func setVolume(_ volume: Float) -> Void {
        let volumeView = MPVolumeView()
        let slider = volumeView.subviews.first(where: { $0 is UISlider }) as? UISlider
        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.1) { //(1)
            slider?.value = volume
        }
    }
}

このように、MPVolumeViewを拡張して、

使い方

MPVolumeView.setVolume(0.6)//(2)

このように使うだけである。

  • (1) +0.1としているのがミソで、slider?.value = volumeとするのを少し遅らせることで音量を変更できる。
  • (2) 0.6としているところは、音量を表す。音量は0.0〜1.0の範囲で指定でき、値が大きいほど音量も大きくなる。

※この方法は、制限を強行突破しているため、いつ動かなくなってもおかしくないです。

参考

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4