ユーザーがスライダーでシステム ボリュームを変更できるようにしたいのですが、これを行う唯一の方法は MPVolumeView を使用することであることに気付きました。
しかし、サンプル コードが見つからず、実装しようとしているすべてのメソッドが表示されません。
では、MPVolumeView を実装する最も簡単で正確な方法は何でしょうか?
ユーザーがスライダーでシステム ボリュームを変更できるようにしたいのですが、これを行う唯一の方法は MPVolumeView を使用することであることに気付きました。
しかし、サンプル コードが見つからず、実装しようとしているすべてのメソッドが表示されません。
では、MPVolumeView を実装する最も簡単で正確な方法は何でしょうか?
それをジェネリックとして配置しUIView
、インスペクターを使用してクラスをに設定MPVolumeView
します(MediaPlayerフレームワークもリンクしていることを確認してください)。IBでは通常のスライダーとして表示されますが、実行時には、インスタンスにMPVolumeView
なり、必要なスタイルと動作があります。これは、ボリュームコントロールを許可しないiOSシミュレーターでは期待どおりに機能しない可能性があることに注意してください。
これを使用すると、自動的に取得されます
mpVolumeViewParentView.backgroundColor = [UIColor clearColor];
MPVolumeView *myVolumeView = [[MPVolumeView alloc] initWithFrame: mpVolumeViewParentView.bounds];
[mpVolumeViewParentView addSubview: myVolumeView];
[myVolumeView release];
iOS 13 では、これが変更されました。クラスを に設定して IB にスライダーを追加してMPVolumeView
も機能しなくなりました。そのため、受け入れられた回答は機能しなくなりました。Apple ドキュメントで概説されている正しい方法は、UIView
IB で a を使用し、コードMPVolumeView
でサブビューとして追加することです。Swift での方法は次のとおりです。
// myVolumeViewParentView is the UIView you put in IB
let myVolumeView = MPVolumeView(frame: myVolumeViewParentView.bounds)
myVolumeViewParentView.addSubview(myVolumeView)
この方法は iOS 12 でも機能します。