iOS: Streichung von AudioSessionInitialize und AudioSessionSetProperty
Ich bin sehr neu in Objective-C, und ich bin versucht, zu aktualisieren, einige code, der ist ungefähr 3 Jahre alt zum arbeiten mit iOS 7. Es gibt zwei oder zwei Instanzen von AudioSessionSetProperty
und AudioSessionInitialize
Sie in dem erscheinenden code:
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];
}
Und 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;
}
Für einige Grund dieser code funktioniert auf iOS7 im simulator aber nicht, dass ein Gerät mit iOS7, und ich vermute, dass diese deprecations sind die Ursache. Ich habe das Lesen durch die Dokumentation und damit zusammenhängende Fragen auf dieser website, und es scheint, dass ich AVAudioSession
statt. Ich habe versucht, aktualisieren Sie den code für eine lange Zeit jetzt, und ich bin mir nicht sicher wie richtig die Umstellung auf AVAudioSession
. Weiß jemand, wie diese beiden oben genannten Methoden suchen müssen?
Side note: ich habe es geschafft, die Jagd nach einem Artikel, beschreibt Sie den übergang:
https://github.com/software-mariodiana/AudioBufferPlayer/wiki/Replacing-C-functions-deprecated-in-iOS-7
Aber ich kann nicht scheinen, um diese anwenden zu den oben stehenden code.
Den code, den ich versuche zu aktualisieren, ist eine kleine Frequenz-Erkennung-app aus dem git:
https://github.com/jkells/sc_listener
Alternativ, wenn jemand könnte mich zu einem Probe-demo-app kann erkennen, dass die Frequenzen auf iOS-Geräten, das wäre genial.
InformationsquelleAutor Henry F | 2014-01-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als Sie beobachtet haben, so ziemlich alle alten Core-Audio-AudioSession Funktionen wurden verworfen zugunsten von AVAudioSession.
Den AVAudioSession ist ein singleton-Objekt, das initialisiert beim ersten Aufruf:
Es ist keine separate
initialize
Methode. Aber Sie werden möchten, aktivieren Sie die audio-Sitzung:Hinsichtlich der Einstellung der hardware-sample-rate mit
AVAudioSession
Lesen Sie bitte meine Antwort hier:Wie bekomme ich die native (hardware-unterstützt) audio-sampling-raten, um zu vermeiden, die interne sample rate conversion?
Anderen vergleicht & die Kontraste zwischen den Core-Audio-audioSession und AVFoundation ist AVAudioSession hier sind einige meiner anderen Antworten um das gleiche Thema:
Wie kann ich die Audioausgabe an Lautsprecher ohne Verwendung AudioSessionSetProperty?
das hintere Mikrofon des iphone 5
Abspielen von audio durch die oberen (Anruf) Lautsprecher
Steuern der hardware-Mikrofon-Eingang, gain - /level-auf dem iPhone?
InformationsquelleAutor foundry
Schrieb ich eine kurze Anleitung, die beschreibt, wie ein update auf das neue AVAudioSession Objekte. Ich gab es auf GitHub: "Ersetzen Sie C-Funktionen deprecated in iOS 7."
oops, ich sollte Hinzugefügt haben AVFoundation.Rahmen. Siehe [stackoverflow.com/questions/18807157/...
sich nicht zu sorgen. Dank Ihrem tutorial, ich bin schon gut auf dem Weg zu meinem problem, die wie es sich herausstellt, war nichts zu tun mit dem upgrade tutorial. In der Tat, es wird wahrscheinlich dazu führen, eine Bestätigung.
Ich habe es geschafft mein problem zu lösen. Es war nur möglich, weil Ihre GitHub. Danke. Ich auch ersetzt - (BOOL)setUpAudioSession mit foundry - (void)configureAVAudioSession. Siehe [link] (stackoverflow.com/questions/37692276/...)
Ihre github Artikel war sehr nützlich, um mir zu helfen, herauszufinden, wie zu beheben meine verschiedenen AudioSession deprecations.
InformationsquelleAutor Mario