2011-01-14 10 views
8

Ich schreibe eine iPad-App, die die Text-to-Speech-Engine "Flite" zur Ankündigung bestimmter Ereignisse verwendet. Die Flite-Engine verwendet eine AVAudioPlayer-Instanz, um das gesprochene Audio nach der Wiedergabe wiederzugeben. Aus Spaß habe ich beschlossen, meiner App einige einfache Steuerelemente hinzuzufügen, damit der Benutzer die iPod-Wiedergabe steuern kann (next, prev, play/pause und volume - the basics), während meine App mit MPMusicPlayerController läuft (natürlich).iPod-Lautstärke beeinflusst App-Lautstärke

Das Problem, das ich habe, ist, dass, wenn ich die iPod-Lautstärke mit MPMusicPlayerController anpassen, alle meine Audio betroffen ist, einschließlich anderer Soundeffekte und der Sprache Audio. Ich stelle die Lautstärke für diese anderen Audio-Player (AVAudioPlayer Instanzen) auf 1,0 vor dem Abspielen des Sounds, aber es scheint, dass die Lautstärke immer auf die Lautstärke des iPod-Players eingestellt ist ...

Ist das normal? Und was kann ich tun, um es zu umgehen? Ich möchte, dass das Audio meiner App unabhängig von der Lautstärke des iPod-Players mit voller Systemlautstärke wiedergegeben wird. (Beispiel: Der Benutzer hat die Systemlautstärke auf 80% des maximalen Gerätewerts eingestellt. Ich möchte, dass meine App 100% dieser 80% -Audiosignale abspielt, während der Benutzer die iPod-Audiowiedergabe auf 0-100% dieser 80 einstellen kann %.) Hinweis: Ich bin nicht an "Ducking" interessiert, aber die iPod-Lautstärke wird immer niedriger eingestellt, während meine App läuft (Hintergrundmusik).

Ich habe auch das Problem, dass manchmal, wenn Sie die App zum ersten Mal starten und Play auf dem iPod-Player drücken (die den [player play] Anruf sendet), reagiert der iPod nicht. Wenn ich die Home-Taste drücke, gehe in die iPod-App und starte die Wiedergabe. Sobald ich wieder zu meiner App komme, funktioniert es einwandfrei. Was zum Umgang damit?

Vielen Dank im Voraus für jede Hilfe !!

+0

Hallo Vic, Hast du die Lösung dafür, da ich auch das gleiche Problem mit MPMusicPlayerController & AVAudioPlayer habe. –

+0

Nein, ich habe "ducking" implementiert, aber diese Lösung ist nicht das Verhalten, das ich oder meine Benutzer was ... – Vic320

Antwort

1

Es könnte etwas mit der von Ihnen angegebenen Audio-Session-Kategorie zu tun haben. Schauen Sie sich die Audio Session Programming Guide an, um zu sehen, ob Sie die richtige Kategorie ausgewählt haben.

+0

Diese Dokumentation war keine Hilfe. Das einzige, was ich tun kann, ist das "Ducking", was ich getan habe, aber das ist nicht das, was ich oder meine Benutzer wollen ... – Vic320

+0

Welche Audio-Session-Kategorie verwenden Sie? – jdmunro

+0

Ich verwende die Kategorie: kAudioSessionCategory_MediaPlayback. – Vic320

0

Die Lautstärketasten auf der Seite steuern die Systemlautstärke und dadurch die Lautstärke der App-Sounds.

Ich denke, es gilt als die Master-Lautstärkeregelung.

+0

Ich versuche nicht, die Lautstärkeregelung der seitlichen Tasten zu übersteuern. Ich versuche, die Lautstärke der iPod-App im Verhältnis zur Lautstärke meiner App zu verringern.Wenn ich jedoch die Lautstärke der iPod-App herabsetze, verringert sich auch die Lautstärke meiner App. Alle Lautstärkestufen sind auf oder unter der Masterlautstärke, die mit den Tasten eingestellt wurde. – Vic320

0

können Sie die Lautstärke für bestimmte Samples oder Klänge über die setVolume des AVItem

[Artikel setVolume]

Sie können eine AVItem erstellen Sie eine vorhandene Audio-Datei in Ihrer Anwendung oder auf dem iPhone zu verweisen. Der Code ist ziemlich einfach und sieht so aus ->

AVItem * item [[AVItem alloc] initWithPath: @ "die Datei"]; [itemsetVolume]; Übrigens, dies hat keine Auswirkungen auf den Rest des Audiokanals (instanziiert durch irgendein AVController-Objekt) und die Lautstärke, die Sie in Ihrem Code eingestellt haben, wird nicht auf Ihrem Bildschirm angezeigt, also bin ich mir nicht sicher, ob Sie etwas ändern können es zur Laufzeit.

+0

Dies funktioniert nicht. Selbst wenn ich die Lautstärke auf 100% (1,0) stelle, ist sie immer noch nicht höher als die Lautstärke der iPod-App. Ich sehe nicht, warum die iPod-Lautstärkeeinstellung die Lautstärke meiner App beeinflusst. Natürlich erwarte ich, dass die Lautstärke meiner App den Master-Lautstärkepegel nicht überschreitet. Ich frage mich, ob Apple die Master-Lautstärke gleich macht wie die iPod-Lautstärke ... – Vic320

+0

Verwenden Sie einen AVAudioPlayer? – luca590

+0

Wenn nicht, möchten Sie vielleicht darüber nachdenken. Weil das in der gleichen API wie das [setVolume] ist, wird es wahrscheinlich viel besser funktionieren. – luca590

Verwandte Themen