gpt4 book ai didi

iphone - 使用 MPVolumeView 后如何重新打开系统音量覆盖?

转载 作者:IT王子 更新时间:2023-10-29 07:35:48 28 4
gpt4 key购买 nike

我正在为非本地声音格式构建音频播放器。该应用程序的层次结构基于 iPod.app。它有许多 UITableView 和一个 UIView (TrackView),它使用 MPVolumeView 来允许用户更改屏幕上的音量。在 TrackView 第一次变得可见之前,使用硬件按钮更改音量会按预期(和期望)显示系统音量覆盖。当 TrackView 可见时,这些叠加层不会出现,因为在使用硬件按钮更改音量时 MPVolumeView 会更新(同样需要)。

这就是问题所在:一旦您退出 TrackView,使用硬件音量按钮时系统音量覆盖不会出现。我尝试以编程方式在 TrackViewController viewWillAppear: 中分配、创建和添加 MPVolumeView,然后在 TrackViewController viewWillDisappear:.

这不会发生在 iPod.app 中。退出包含 MPVolumeView 的 View 后,使用硬件音量按钮时会显示系统音量叠加层。

我错过了什么?


更新 2:这似乎是 MPVolumeView 中的错误,在 iOS 3.2 之后的某个时间引入并在 4.2 中修复。


更新:我对表现出相同行为的默认基于窗口的应用程序项目进行了简单的缩减。一旦 MPVolumeView 变得可见,系统卷覆盖将再也不会在应用程序中出现。

VolumeAppDelegate.h:

#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>

@interface VolumeAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
IBOutlet UIView *volumeView;
IBOutlet MPVolumeView *mpVolumeView;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;

-(IBAction)toggleVolumeView:(id)sender;

@end

VolumeAppDelegate.m:

#import "VolumeAppDelegate.h"

@implementation VolumeAppDelegate

@synthesize window;

-(IBAction)toggleVolumeView:(id)sender{

if (mpVolumeView == nil){
mpVolumeView = [[MPVolumeView alloc] initWithFrame:volumeView.bounds];
[volumeView addSubview:mpVolumeView];
}
else{
[mpVolumeView removeFromSuperview];
[mpVolumeView release];
mpVolumeView = nil;
}
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

[self.window makeKeyAndVisible];
mpVolumeView = nil;
return YES;
}

- (void)dealloc {
[window release];
[super dealloc];
}

@end

您需要将 MediaPlayer 框架添加到 Xcode 中的项目,并在界面生成器中打开 MainWindow.xib,以添加 UIView 和 UIButton IBOutlets,并将 IBAction 连接到 UIButton。

最佳答案

很遗憾,这是早期 iOS 版本中私有(private)框架的问题。

我理解你想为此做一个解决方案,但这会导致你的代码操纵私有(private)框架,导致你的应用无法通过审核。

幸运的是,出现此错误的版本跨度很短,并且使用这些版本的设备数量正在逐分钟减少。

关于iphone - 使用 MPVolumeView 后如何重新打开系统音量覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4297176/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com