关闭iOS原生MPVolumeView音频路由菜单

7

我正在使用MPVolumeView让用户在使用我的应用程序时控制他喜欢的音频路由。

通过以下代码呈现视图:

self.volumeView = [[MPVolumeView alloc] initWithFrame:self.view.frame];
self.volumeView.showsVolumeSlider = NO;
[self.view addSubview:self.volumeView];

当用户点击音频路由按钮时,会出现一个菜单,显示可用选项。
问题:显示音量视图的屏幕可能需要被隐藏,因为我的应用程序处理各种事件,我想同时隐藏音频路由菜单(如果当前已显示)。
我的问题: 有人知道是否可以手动关闭MPVolumeView的音频路由选择菜单,而不需要用户按取消按钮吗?
谢谢!

2
嘿,你得到答案了吗?其实我也遇到同样的问题。 - Prabhat Kasera
1个回答

0
在iOS 8上,你可以使用下面的代码来调用私有API。
            NSArray *windows = [[UIApplication sharedApplication] windows];
    for (UIWindow *window in windows) {
        if ([NSStringFromClass([window class]) isEqualToString:@"_MPAVRoutingSheetSecureWindow"]) {
            UIView *view = [window.subviews firstObject];
            if ([NSStringFromClass([view class]) isEqualToString:@"MPAVRoutingSheet"]) {
                [view performSelector:@selector(dismiss)];
            }
        }
    }

1
尽管它解决了问题,但通常建议不使用私有API并不是一个好的实践... - Michal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接