7 Stimmen

Tonformat für iPhone-App

Welche Art von Audiodateien verwenden Sie in Ihren iPhone-Spielen/Apps?

Ich habe ein Spiel mit 30 MB an Sounds im .wav-Format und überlege, ob ich sie vielleicht in .mp3 umwandeln soll, um die Größe der App zu reduzieren... Gibt es einen großen Unterschied in der Leistung? Gibt es andere Probleme?

11voto

mahboudz Punkte 39008

Beachten Sie, dass bestimmte Codecs in der Hardware und andere in der Software laufen. Daher erlauben nicht alle Komprimierungen die gleichzeitige Wiedergabe von mehr als einem Ton. Wenn zum Beispiel ein Ton abgespielt wird, kann es sein, dass ein UI-Ton wie ein Piepton nicht abgespielt wird, wenn beide denselben Codec verwenden. Weitere Informationen finden Sie unter:

http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AudioandVideoTechnologies/AudioandVideoTechnologies.html#//apple_ref/doc/uid/TP40007072-CH19-SW6

iPhone Audio-Hardware-Codecs iPhone OS-Programme können eine breite Palette von Audiodatenformaten verwenden. Ab iPhone OS 3.0 können die meisten dieser Formate softwarebasiert kodiert und dekodiert werden. Sie können mehrere Töne in allen Formaten gleichzeitig abspielen, obwohl Sie aus Leistungsgründen abwägen sollten, welches Format in einem bestimmten Szenario das beste ist. Die Hardware-Decodierung hat im Allgemeinen weniger Auswirkungen auf die Leistung als die Software-Decodierung.

Die folgenden iPhone OS-Audioformate können für die Wiedergabe eine Hardwaredecodierung verwenden:

AAC ALAC (Apple Lossless) MP3 Das Gerät kann nur eine einzige Instanz eines dieser Formate gleichzeitig über die Hardware abspielen. Wenn Sie beispielsweise einen Stereo-MP3-Ton abspielen, wird ein zweiter gleichzeitiger MP3-Ton per Software dekodiert. Ebenso können Sie nicht gleichzeitig einen AAC- und einen ALAC-Ton über die Hardware abspielen. Wenn die iPod-Anwendung im Hintergrund einen AAC-Sound abspielt, gibt Ihre Anwendung AAC-, ALAC- und MP3-Audio mithilfe der Software-Decodierung wieder.

Um mehrere Töne mit optimaler Leistung abzuspielen oder um Töne effizient abzuspielen, während der iPod im Hintergrund läuft, verwenden Sie lineares PCM (unkomprimiert) oder IMA4 (komprimiert).

Um zu erfahren, wie Sie überprüfen können, welche Hardware- und Software-Codecs auf einem Gerät verfügbar sind, lesen Sie die Diskussion zur Konstante kAudioFormatProperty_HardwareCodecCapabilities in Audio Format Services Reference.

1voto

Ramin Punkte 13326

Sowohl das AAC- als auch das CAF-Format funktionieren gut und bieten eine angemessene Dateigröße. Für bestimmte Hintergrundschleifen fand ich, dass MP3-Dateien zu groß werden, aber das ist Geschmackssache. Der einzige Weg, das richtige Gleichgewicht zwischen Größe und Qualität zu finden, ist das Experimentieren mit einer vernünftigen Soundbearbeitungs-App. Ich hatte ziemlich viel Glück mit Audacity und Amadeus Pro.

Wir empfehlen, die Ausgabe mit einem wirklich guten, geräuschisolierenden Kopfhörer am Gerät selbst abzuhören. Die meisten Leute werden Ihr Material damit nicht anhören, aber wenn Sie die Tonqualität verringern, um die Dateigröße zu reduzieren, werden Sie anfangen, Rauschen und Brumm-Artefakte zu bekommen. Es ist nur eine Frage der Abwägung zwischen Größe und Qualität und was man bereit ist, in Kauf zu nehmen.

1voto

Mark Bessey Punkte 19301

Ich verwende eine Kombination aus WAV-Dateien (für Soundeffekte) und MP3-Dateien (für Musik), was gut zu funktionieren scheint. Es kann zu Problemen kommen, wenn Sie versuchen, mehrere MP3-Dateien gleichzeitig abzuspielen - Aussetzer oder Leistungseinbußen, je nach Ihren AudioSession-Einstellungen.

Wenn ich meine Soundeffekte komprimieren müsste, bin ich mir nicht sicher, welcher Codec den geringsten Dekodierungs-Overhead hat. Etwas wie Apple Lossless würde wahrscheinlich gut funktionieren und würde die Größe ungefähr halbieren.

0voto

Rhythmic Fistman Punkte 32892

Ich finde mp3 in Ordnung, aber bedenken Sie, dass die Dekodierung auf dem iPhone/Touch2G nur etwa 2,5 Mal so schnell ist wie in Echtzeit.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X