1

ナビゲーションコントローラーの下部バーにMPVolumeViewのインスタンスを追加しようとしています(ツールバーのボックスがオンになっています)コードでエラーは発生しませんが、デバイスでプロジェクトを実行すると、ボリュームスライダーが表示されません表示しています。提案を事前に感謝します、ここに私のコードがあります:

@interface ViewController ()
{
AVPlayer *vPlayer;
AVPlayerItem *playerItem;
UISegmentedControl *segm;
UIToolbar *toolbar;
}
@end

@implementation ViewController
@synthesize myViewVolume;
@synthesize nowPlaying;

- (void)viewDidLoad
{
[super viewDidLoad];
playerItem = [AVPlayerItem playerItemWithURL:[NSURL URLWithString:@"http://vibesradio.org:8000  /listen.pls"]];
vPlayer = [[AVPlayer alloc] initWithPlayerItem:playerItem];
[playerItem addObserver:self forKeyPath:@"timedMetadata" options:NSKeyValueObservingOptionNew context:NULL];


//self.myViewVolume = [[MPVolumeView alloc] initWithFrame:CGRectMake(20, 330, 280, 50)];


self.myViewVolume = [[MPVolumeView alloc] initWithFrame: toolbar.bounds];
[self.myViewVolume sizeToFit];
[self.view addSubview:toolbar];
[toolbar addSubview:self.myViewVolume];

}
4

1 に答える 1

2

ツールバーにサブビューを追加することはできません。ビューが表示するビューであるUIBarButtonItemを追加する必要があります。

UIBarButtonItem* b = [[UIBarButtonItem alloc] initWithCustomView: myVolumeView];
myToolbar.items = @[b];

これはMPVolumeViewとは何の関係もありません。これは、ツールバーまたはナビゲーションバーに追加する任意のビューに当てはまります。

ナビゲーションインターフェイスのViewControllerのデバイスで機能する実際のコードは次のとおりです。

MPVolumeView* vv = [[MPVolumeView alloc] initWithFrame: CGRectMake(0, 0, 150, 40)];
UIBarButtonItem* b = [[UIBarButtonItem alloc] initWithCustomView: vv];
self.toolbarItems = @[b];
self.navigationController.toolbarHidden = NO;

デバイスでテストする必要があることにも注意してください。シミュレーターにはボリュームビューのインターフェイスはありません。:(

于 2012-12-01T21:46:14.270 に答える