Frage

Ein Diktiergerät benötigt keine unkomprimierten Linear PCM Audio. Komprimierte AMR täte gut. Das iPhone Rahmen für die Aufzeichnung von Audio gebaut ist einfach genug, aber die einzigen Beispiele, die ich habe für den Aufbau der Audio-Format (die kommen von Apple) verwenden LinearPCM gefunden. Ich habe verschiedene andere Kombinationen von Werten versucht, aber kann nicht scheinen, etwas Arbeit zu bekommen.

Hat jemand einen Code, der tatsächlich aufzeichnet AMR?

Bearbeiten: Das AMR-Format ist eine der Optionen für den Datentyp festlegen, aber die anderen Optionen (Paketgröße, Bildgröße etc.) scheinen nicht egal zusammenpassen, was ich setze sie auf.

Bearbeiten: Hier ist, was ich für die PCM-Version haben:

/*
 If we want to use AMR instead of PCM:
 AMR Format:
 Sampling Frequency: 8 kHz/13-bit (160 samples for 20 ms frames), filtered to 200-3400 Hz
 eight source codecs :  12.2, 1.2, 7.95, 7.40, 6.70, 5.90, 5.15, 4.75 kbit/s
 generated frame length: 244, 204,  159,  148,  134,  118,  103,   95 bits per frame
 */
format->mFormatID = kAudioFormatLinearPCM;
format->mSampleRate = 8000.0;    //8 kHz
format->mFramesPerPacket = 1;    //1 frame per packet
format->mChannelsPerFrame = 1;    //Mono
format->mBytesPerFrame = 2;        //8/bits per frame (round up)
format->mBytesPerPacket = 2;    //Same as bytes per frame
format->mBitsPerChannel = 16;    //16-bit audio
format->mReserved = 0;            //always 0
format->mFormatFlags = kLinearPCMFormatFlagIsBigEndian |
                       kLinearPCMFormatFlagIsSignedInteger |
                       kLinearPCMFormatFlagIsPacked;
War es hilfreich?

Lösung

AMR-Codec wird nicht für die Codierung unterstützt / auf dem iPhone aufnehmen, wenn auch für die Wiedergabe unterstützt wird. Dies ist der Grund, die kAudioFormatAMR Konstante existiert

Offizielle api sagt, dass unterstützten Codierungsformate :

  • ALAC (Apple Lossless) ~> kAudioFormatAppleLossless
  • iLBC (Internet Low Bitrate Codec, für Sprache) ~> kAudioFormatiLBC
  • IMA / ADPCM (IMA4) ~> kAudioFormatAppleIMA4
  • lineare PCM ~> kAudioFormatLinearPCM
  • μ-Gesetz ~> kAudioFormatULaw
  • a-law ~> kAudioFormatALaw

Sie können eines dieser Formate versuchen oder einen Open-Source-AMR-Codierer als golden vermuten läßt.

Bearbeiten : Aktualisiert Amt api Link

Andere Tipps

Um olegueret des Link zur offiziellen Dokumentation aktualisieren (warum sie diese Dinge verbergen?)

http://developer.apple.com/library/ios /#qa/qa2008/qa1615.html

Ich denke, AMR-Codec-Format ist nicht mein iPhone Diktiergerät App unterstützt.

Kann sein, kann man versuchen einige Open-Source-Integration, Implementierung von AMR-Encoder in das iPhone Äpfel Anwendungs-Framework und versuchen, die Sprachaufzeichnungsspeicher die Audio-in AMR codierten Format zu machen. (Ich weiß nicht, ob das ist von Apple durch ihre NDA / Lizenz erlaubt).

-AD

Sie können die Audio-Aufnahme zu einem unkomprimierten Linear PCM-Puffer (Kreis- oder Ring), und in einem anderen Thread, konvertieren Daten in diesem Puffer, Ihre eigene AMR (oder andere) Kompressions-Engine, bevor die komprimierten Audiodaten auf einem rettende Datei.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top