2012年11月22日

MPVolumeViewの表示方法

前回作ったAVSampleにMPVolumeViewを追加します。

MPVolumeViewは、iPhone(iPod touch,iPad)のデバイスのボリュームを表示するもので、スライダーとソース選択ボタンから成り立っています。音量の調整が出来る他、現在の音量が他のアプリやハードウエアで変更されたものも反映してくれるものです。

これはちょっと開発者に優しくない仕組みになっています。
・iPhoneシミュレータでは表示しない。
・ViewなのにInterface Builderで部品が用意されていない。
・カスタマイズなど色々できるようになるのはiOS6.0以降。

Appleのドキュメントでは以下のようなコードで生成しなさいというサンプルになっている。だが、他のUI部品をIBで作って、これだけ配置しないのは変だし画面上の位置をこれだけx,yポジションで指定するのもやりにくい。

mpVolumeViewParentView.backgroundColor = [UIColor clearColor];
MPVolumeView *myVolumeView =
[[MPVolumeView alloc] initWithFrame: mpVolumeViewParentView.bounds];
[mpVolumeViewParentView addSubview: myVolumeView];
[myVolumeView release];


MediaPlayer.frameworkを追加



MPVolumeViewを使うのに必要なフレームワークを追加する。
MPVolumeView1.png

IBでの作業



右下のオブジェクトライブラリで普通のUIViewを選んで配置。MPVolumeViewを置きたい場所に表示したいサイズに調整しながら。ただしスライダーを表示するので最低限の高さ24ptは必要だし、あまり大きくしてもスライダーの巾は増えないので意味はないのでほどほどに(Viewをカスタマイズするなら別なんだろうけど)。

右ビューでIdentity Inspectorを表示してカスタムクラスにMPVolumeViewを設定。表示は変わってくれないけどこれでOK。ただしこのままだとどこに配置したのかわからなくなるので、背景色をなんでもいいので適当な物にに変えておく。
MPVolumeView2.png

コード



本来なら表示したいだけならコードは必要ないのだが、一応前節で編集のために背景色を設定しているのでそれを実行時に元に戻す必要がある。

IBOutletの設定はできているとして

- (void)prepareVolume
{
self.volumeView.backgroundColor = [UIColor clearColor];
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self prepareSound];
[self prepareVolume];
}


確認には実機が必要。
Xcode4.5.2
AVSample20121121.zip
posted by 永遠製作所 at 12:46| 東京 ☁| Comment(0) | TrackBack(0) | iPhone/iPod touch | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック