作为AudioSessionSetProperty有可能成为deprecated,我想找到的代码示例如何路由音频到speaker使用其他手段.
以前我做过以下事情:
-(void)setSpeakerEnabled
{
debugLog(@"%s",__FUNCTION__);
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (
kAudioSessionProperty_OverrideAudioRoute,
sizeof (audioRouteOverride),
&audioRouteOverride
);
}
Run Code Online (Sandbox Code Playgroud)
试图获得相同的结果,但without call到AudioSessionSetProperty.
我很新的Objective-C中,我试图更新一些代码,是3岁左右的iOS 7有两个或两个实例的工作AudioSessionSetProperty和AudioSessionInitialize出现的代码:
1:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
AudioSessionInitialize(NULL,NULL,NULL,NULL);
[[SCListener sharedListener] listen];
timer = [NSTimer scheduledTimerWithTimeInterval: 0.5 target: self selector: @selector(tick:) userInfo:nil repeats: YES];
// Override point for customization after app launch
[window addSubview:viewController.view];
[window makeKeyAndVisible];
}
Run Code Online (Sandbox Code Playgroud)
2:
- (id)init {
if ([super init] == nil){
return nil;
}
AudioSessionInitialize(NULL,NULL,NULL,NULL);
Float64 rate=kSAMPLERATE;
UInt32 size = sizeof(rate);
AudioSessionSetProperty (kAudioSessionProperty_PreferredHardwareSampleRate, size, &rate);
return self;
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,这段代码可以在iOS7的模拟器中运行,但不适用于运行iOS7的设备,我怀疑这些弃用是原因.我一直在阅读本网站上的文档和相关问题,似乎我需要使用AVAudioSession.我一直在尝试更新代码很长一段时间,而且我不确定如何正确切换到AVAudioSession.有谁知道上面这两种方法需要看什么?
旁注:我已经设法找到了一篇概述过渡的文章:https: //github.com/software-mariodiana/AudioBufferPlayer/wiki/Replacing-C-functions-deprecated-in-iOS-7 但我可以'似乎将此应用于上面的代码.
我正在尝试更新的代码是来自git的小型频率检测应用程序:https: //github.com/jkells/sc_listener …