33751


MPVolumeViewで作ったボリュームスライダーを右側へゆっくりスライドしていくと、スライドバーが黄色く点滅し、ボリューム位置が少し左へ移動します。  
再度右側へスライドすると点滅は解除され右端まで移動することができます。

なぜ黄色く点滅するのかわかりません。  
原因と解決方法を教えていただけないでしょうか？

よろしくお願いします。

import UIKit  
import MediaPlayer

class ViewController: UIViewController {

[code]

    var mpVolumeSlider = UISlider()
    var volumeParentView = UIView()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        volumeParentView.backgroundColor = UIColor.clear
        let volumeView = MPVolumeView(frame: CGRect(x: 10, y: 300, width: 300, height: 50))
    
        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)
            }
        }
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
[/code]

}  
[![実機画像](https://i.stack.imgur.com/P3YT1.png)](https://i.stack.imgur.com/P3YT1.png)


CC BY-SA 3.0
2017-04-03T06:59:00.520
33736
2017-04-03T12:35:52.523
2020-06-17T08:14:45.997
-1
19781
question
swift swift3
swift3.0 MPVolumeViewで作ったボリュームスライダー右側の黄色点滅を解除したい


本家stackoverflowに類似の質問があるのが見つかりました。

[Customising MPVolumeView's high volume warning on
iOS](https://stackoverflow.com/q/29193657/6541007)

要はEUの音量制限(大きすぎるボリュームにすると健康に悪い影響を与える可能性があることを明示しなければいけない)に対応するもののようです。

上の記事中にもありますが、この表示をカスタマイズするためのプロパティもあるようですが、完全に無しにすることは許されていないようです。

>
[code]

>     // Sets the image for the EU volume limit. When appropriate, this image
> will be displayed on top of the
>     // maximumVolumeSliderImage. It must be visually distinct from the
> maximumVolumeSliderImage, and use
>     // a color similar to the default, to convey a sense of warning to the
> user. The same image is used for
>     // all control states. For debugging purposes, switch on the "EU Volume
> Limit" setting in the Developer
>     // menu of the Settings application to always enable the volume limit.
>     @available(iOS 7.0, *)
>     open var volumeWarningSliderImage: UIImage?
>  
[/code]

>
>
> (私訳)EUの音量制限用の画像を設定します。それが適切な状況では、この画像が`maximumVolumeSliderImage`の上に重ねて表示されます。この画像は、ユーザに警告と感じさせるため、`maximumVolumeSliderImage`とは異なるもので、デフォルトと同じ色を使用しなければいけません。全てのコントロールのステートで同じ画像が使用されます。デバッグ用途に、常に音量制限を有効にしたい場合には、設定アプリの開発者メニューから「EU音量制限」設定をオンにしてください。

と言うわけで、 **ユーザが音量制限を有効化している場合には** 必ず表示されるべきものなので、そう言う用途のもだと思って受け入れるしかないでしょう。


CC BY-SA 3.0
2017-04-03T12:35:52.523
33751
2017-04-03T12:35:52.523
2017-05-23T12:38:55.250
-1
13972
33736
answer