swift

【swift3.0】MPVolumeView 縦スライダー操作中にシステム音量を表示させずに音量を変更する

縦スライダー操作中にシステム音量を表示させずに音量を変更させます。




環境
・MacBook Air macOS Sierra version 10.12
・Xcode version 8.2
・Swift version 3.0.2

仕様
縦スライダーを上下に操作すると音量が変化する
※実機で検証をおこなう

参考資料
MPVolumeSliderDemoViewController.swift
https://gist.github.com/mountainKaku/07d37dab08cf726e41f15bbc883a365a
※こちらのコードをもとにしています。

【iOS】【MPVolumeView】スライダー移動で音量を変更したときにシステムの音量表示のオーバーレイが表示されてしまうときの対処法 | わびさび少年のブログ
http://tokyo-wabisabi-boys.net/blog/iosobjective-c/hide_mpvolumeview_overlay


準備
①UISliderを設置
②UISliderのアウトレットを作成(名前:slider)
③UISliderのアクションを作成(名前:volumeChanged)
④UIViewを設置
⑤UIViewのアウトレットを作成(名前:volumeParentView)




ViewController.swift

import UIKit
import AVFoundation
import MediaPlayer

class ViewController: UIViewController {
    
    @IBOutlet var volumeParentView: UIView! // UISliderの親UIView
    @IBOutlet weak var slider = UISlider() // UISlider自体
    var mpVolumeSlider = UISlider() // MPVolumeSlider
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // Setup slider
        setupVolumeSlider()
        
    }
    
    func setupVolumeSlider() {
        // Note: This slider implementation uses a MPVolumeView
        // The volume slider only works in devices, not the simulator.
        slider?.transform = CGAffineTransform(rotationAngle: CGFloat((-90.0 * M_PI) / 180.0))
        volumeParentView.backgroundColor = UIColor.clear
        let volumeView = MPVolumeView(frame: CGRect(x: -1000, y: -1000, width: 0, height: 0))
        
        for view in volumeView.subviews {
            let uiview: UIView = view as UIView
            if (uiview.description as NSString).range(of: "MPVolumeSlider").location != NSNotFound {
                self.mpVolumeSlider = (uiview as! UISlider)
                self.view.addSubview(volumeView)
            }
        }
    }
    
    @IBAction func volumeChanged(_ sender: UISlider) {
        mpVolumeSlider.value = sender.value
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}










関連記事

  1. swift

    【swift2.2】初心者がswiftで作ったカレンダーアプリ ⑤プログラムを書く

    カレンダーを表示するシンプルなアプリを作ります。目次①プロ…

  2. swift

    【swift3】正規表現で特殊文字を検索して置換する

    正規表現で特殊文字を検索して置換します。環境・Ma…

  3. swift

    【swift2.2】初心者がswiftで作ったカレンダーアプリ ③IBOutlet、IBAction…

    カレンダーを表示するシンプルなアプリを作ります。目次①プロ…

  4. swift

    【swift2.2】初心者がswiftで作ったカレンダーアプリ ①プロジェクトを作成

    カレンダーを表示するシンプルなアプリを作ります。目次①プロ…

  5. swift

    【swift3.0】MIDIファイルを再生させる

    swift3.0でMIDIファイルを再生させます。…

  6. swift

    【swift2.2】初心者がswiftで作ったカレンダーアプリ ~目次~

    カレンダーを表示するシンプルなアプリを作ります。G…

カテゴリー

おすすめ記事

アーカイブ

PAGE TOP