Wie kann ich die Aufzeichnung eines Gesprächs / Telefonats auf iOS?
Ist es theoretisch möglich, Aufzeichnung einen Anruf auf dem iPhone?
Ich bin der Annahme Antworten, die:
- kann oder kann nicht verlangen, dass das Handy jailbroken
- kann oder kann nicht passieren apples Richtlinien durch die Benutzung der privaten API ' s (ich interessiere mich nicht; es ist nicht für den App Store)
- kann oder nicht verwenden private SDKs
Will ich nicht Antworten, einfach unverblümt sagen: "Apple erlaubt nicht, dass".
Ich weiß, es wäre keine offizielle Möglichkeit, es zu tun, und sicherlich nicht für eine App-Store-Anwendung, und ich weiß, es gibt call recording apps, die ausgehende Anrufe tätigen, durch Ihre eigenen Server.
InformationsquelleAutor Adam Dempsey | 2009-11-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier gehen Sie. Funktionsfähiges Beispiel. Tweak geladen werden soll, in
mediaserverd
daemon. Es zeichnet jeden Anruf in/var/mobile/Media/DCIM/result.m4a
. Audio-Datei hat zwei Kanäle. Links das Mikrofon, rechts ist der Lautsprecher. Auf dem iPhone 4S Anruf wird nur aufgezeichnet, wenn der Lautsprecher eingeschaltet ist. Auf dem iPhone 5, 5C und 5S Anruf aufgezeichnet wird oder so. Möglicherweise gibt es kleine Problemchen beim Wechsel in/aus Lautsprecher, aber die Aufzeichnung fortgesetzt.Ein paar Worte über das, was Los ist.
AudioUnitProcess
Funktion wird verwendet für die Verarbeitung von audio-streams, um einige Effekte anwenden, mischen, konvertieren, etc. Wir werden EinhakenAudioUnitProcess
um Zugriff auf Telefon-Anruf audio-streams. Während der Anruf aktiv ist, diese streams verarbeitet werden, in verschiedenen Arten.Wir hören für CoreTelephony-Benachrichtigungen, um zu bekommen, Anruf-status ändert. Wenn wir empfangen von audio-samples, die wir brauchen, um zu bestimmen, Woher Sie kommen - Mikrofon oder-Lautsprecher. Dies geschieht mit Hilfe
componentSubType
Feld inAudioComponentDescription
Struktur. Nun werden Sie vielleicht denken, warum wir nicht speichernAudioUnit
Objekte, so dass wir nicht brauchen, um zu überprüfencomponentSubType
jeder Zeit. Ich Tat das, aber es wird brechen alles, wenn du Schalter Lautsprecher on/off auf dem iPhone 5, daAudioUnit
Objekte ändern, Sie sind neu. So, jetzt öffnen wir audio-Dateien (eine für das Mikrofon und eine für den Lautsprecher) und schreiben Muster in Ihnen, so einfach ist das. Wenn der Anruf endet, wir erhalten entsprechende CoreTelephony Benachrichtigung, und schließen Sie die Dateien. Wir haben zwei separate Dateien mit audio von Mikrofon und Lautsprecher, die wir Zusammenführen müssen. Dies ist, wasvoid Convert()
ist. Es ist ziemlich einfach, wenn Sie wissen, die API. Ich glaube nicht, dass ich brauche, um es zu erklären, Kommentare sind genug.Zu sperren. Es gibt viele threads in
mediaserverd
. Audio-Verarbeitung und CoreTelephony Benachrichtigungen sind in verschiedenen threads also brauchen wir eine Art Synchronisierung. Ich wählte spin locks, weil Sie schnell sind und weil die chance sperrungskonflikte ist klein, in unserem Fall. Auf dem iPhone 4S und auch iPhone 5 ganze Arbeit inAudioUnitProcess
getan werden sollte so schnell wie möglich, sonst hören Sie Schluckauf aus dem Geräte-Lautsprecher, die offensichtlich nicht gut.Hier gehen Sie. Funktionsfähiges Beispiel getestet auf iPhone 4S (iOS 6) und iPhone 5 (iOS 7). Später testet es auf 5C und 5S. Ich werde die Ergebnisse posten.
Ich denke, es gibt nur eine Sache Links - machen Sie es kompatibel mit Telefonkonferenzen. Sie Weise ich mit Handy Anrufe, Benachrichtigungen jetzt nicht mit Telefonkonferenzen.
Hinzugefügt von Telefonkonferenzen unterstützen.
Nein, es funktioniert nur auf einem jailbroken Gerät.
InformationsquelleAutor creker
Ja. Audio Recorder von einem Entwickler namens Limneos hat, dass (und Recht gut). Sie finden es auf Cydia. Er kann jede Art von Anruf auf dem iPhone 5 und ohne Verwendung von beliebigen Servern etc'. Der Anruf wird auf das Gerät gestellt werden, in eine Audio-Datei. Es unterstützt auch das iPhone 4S aber für die Lautsprecher nur.
Dieser tweak ist bekannt, dass die erste tweak immer, dass es geschafft, zu erfassen, sowohl audio-streams, ohne 3rd-party-Server, VOIP oder etwas ähnliches.
Den Entwickler gelegt Pieptöne auf der anderen Seite der Aufruf von alert-die person, die Sie Aufnahmen, aber diese wurden entfernt, die auch durch die Hacker über das Netz. Um Ihre Frage zu beantworten, ja, es ist sehr viel möglich, und zwar nicht nur theoretisch.
Weiter Lesen
Wer sagte, dass es keine Unterstützung für iOS 7 und iPhone 5s? Funktioniert hier auf einem iPhone 5 mit iOS 7 + unterstützt iPhone 5S. 🙂
Ah. Ich falsch gelesen in Kombination mit der iOS 6-screenshots. 🙂
Gibt es irgendeinen code für das im freien?
Nicht, dass ich wüsste.
InformationsquelleAutor Segev
Die einzige Lösung, die ich denken kann, ist die Verwendung der Core-Telefonie Rahmen, und insbesondere die callEventHandler Eigenschaft, abzufangen, wenn ein Anruf kommt, und dann verwenden Sie eine AVAudioRecorder zu erfassen die Stimme von der person mit dem Telefon (und vielleicht auch ein wenig von der person auf der anderen Leitung die Stimme). Dies ist natürlich nicht perfekt, und würde nur funktionieren, wenn die Anwendung im Vordergrund an der Uhrzeit des Anrufs, aber es ist vielleicht die beste die Sie bekommen können. Finden Sie mehr darüber heraus zu finden, wenn es einen eingehenden Anruf hier: Können wir ein Ereignis ausgelöst, Wann immer es Eingehenden und Ausgehenden Anrufe im iphone?.
EDIT:
.h:
ViewDidLoad:
AppDelegate.m:
Dies ist das erste mal, viele dieser features, so dass nicht sicher, ob dies genau stimmt, aber ich denke, Sie bekommen die Idee. Ungetestet, da ich keinen Zugriff auf die richtigen tools im moment. Kompiliert mit diesen Quellen:
Aufnahme Stimme im hintergrund mit AVAudioRecorder
http://prassan-warrior.blogspot.com/2012/11/recording-audio-on-iphone-with.html
Können wir ein Ereignis ausgelöst, Wann immer es Eingehenden und Ausgehenden Anrufe im iphone?
Dies ist sehr theoreticall. Jeder code kommen?
Sehen Sie die letzten änderungen @hfossli
Ich bin nicht in der Lage, dies zu testen, bevor das bounty endet. So ist es immer noch sehr theoreticall.
Ah, schade. Verdammt Apple! 🙂
InformationsquelleAutor John Farkerson
Apple das nicht erlaubt und stellt keine API für.
Jedoch auf einem jailbroken-Gerät ich bin sicher, es ist möglich. Als eine Angelegenheit von Tatsache, ich glaube, es ist bereits getan. Ich erinnere mich an eine app, wenn mein Telefon wurde jailbroken, verändert Sie Ihre Stimme aufgezeichnet und der Anruf - ich erinnere mich, es war eine US-Firma, die es nur in den Staaten. Leider habe ich nicht an den Namen erinnern...
Ja, ich Rede SpoofApp, als TechZen hingewiesen.
Ja, SpoofApp wahrscheinlich records auf deren Server, weil es auf dem AppStore, und es zeichnet die Anrufe. Wie auch immer, ich bin sicher, dass Sie aufzeichnen können Sie Anrufe auf einem jailbroken iPhone. Es ist ein computer. Sie können tun, was Sie wollen, wenn Sie haben uneingeschränkten Zugriff auf die erforderlichen Kompetenzen).
Nicht unbedingt. Könnte es sein, dass das Telefon Teil des iPhone umgeht die software.
Keine software überhaupt? Könnte sein. Auch in diesem Fall, da Sie Zugriff auf das Mikrofon konnte Sie abrufen von Daten aus es und der Aufnahme... Jedenfalls sind diese wilden Vermutungen hier. Jemand mit Erfahrung auf jailbroken Geräten könnte wahrscheinlich erleuchte uns mehr.
InformationsquelleAutor Dimitris
Ich denke, dass einige hardware könnte dieses Problem lösen. Verbunden mit der Miniklinke-Anschluss; mit Ohrhörer und einem Mikrofon, die durch einen kleinen Rekorder. Dieser Rekorder kann ganz einfach sein. Zwar nicht im Gespräch, könnte der Brenner füttern Sie die Telefon-Daten/Aufnahme (durch das jack-Kabel). Und mit einem einfachen start-Taste (genau wie die volum-Steuerelemente auf dem Ohrhörer) könnte ausreichend sein, für das timing der Aufnahme.
Einige setups
InformationsquelleAutor hfossli