web-dev-qa-db-fra.com

Comment puis-je enregistrer la voix et enregistrer un appel dans Android?

S'il vous plaît, aidez-moi si vous savez comment enregistrer la voix, et aussi pour enregistrer la voix de l'appelant et de l'appel pendant un appel téléphonique. Si quelqu'un le sait, donnez-moi un indice.

37
PrashantAdesara

Oui, il est possible de le faire

final MediaRecorder callrecorder = new MediaRecorder();
callrecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
callrecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
callrecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

callrecorder.setOutputFile(filepath);

try {
    callrecorder.prepare();
} catch (IllegalStateException e) {
    System.out.println("An IllegalStateException has occured in prepare!");
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {

    //throwing I/O Exception
    System.out.println("An IOException has occured in prepare!");
    // TODO Auto-generated catch block
    e.printStackTrace();
}

try {
    callrecorder.start();
} catch(IllegalStateException e) {
    e.printStackTrace();
    //Here it is thorowing illegal State exception
    System.out.println("An IllegalStateException has occured in start!");
}

pour arrêter, vous pouvez utiliser

callrecoder.stop();
10
Abhijit Chakra

Regarde ça...

http://androidforums.com/Android-lounge/181663-Android-phone-call-recording-function.html

La réponse courte est ... Obtenez un Galaxy S, de préférence la version sud-coréenne.

8
user417181

Pour autant que je sache, toutes les applications qui enregistrent les appels vocaux sur Android ont le même problème: elles ne fonctionnent que sur certains téléphones, tandis que sur d'autres téléphones, vous ne pouvez entendre qu'un côté de la conversation. Certaines de ces applications tentent également de résoudre ce problème en enregistrant à partir du microphone.

Si vous avez des autorisations root sur votre Android, alors je pense qu'il existe des applications qui fonctionnent mieux car elles ont accès aux flux de niveau inférieur, comme Emmanuel l'a spécifié dans sa réponse.

6
gnobal

Vous ne pouvez pas enregistrer une conversation téléphonique sur Android. Les flux se trouvent dans le système d'exploitation de niveau inférieur et ne sont pas accessibles au niveau de l'application. Pardon.

5
Emmanuel

Je ne sais pas si c'est possible mais en ce qui concerne l'API

recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);

cette ligne se compile bien dans mon code où l'enregistreur est un objet de MediaRecorder et je travaillais une fois sur un tel projet mais plus tard, le projet a été vidé, donc je ne sais pas si cela fonctionne ou non

5
ingsaurabh

L'API est apparemment , mais les fabricants ont désactivé leur firmware radio pour pouvoir le faire.

2
john

Dépend d'un téléphone à l'autre, par exemple Vous ne pouvez pas enregistrer un appel sur les téléphones Nexus et Motorola car ils n'autorisent pas l'enregistrement à partir du micro tant que l'appel n'est pas en cours. Mais le même enregistrement à partir du micro pendant l'appel fonctionne sur la plupart des appareils Samsung et Galaxy.

2
Himanshu Virmani

J'ai peur de savoir Android n'a pas d'api native pour enregistrer les appels vocaux. Même les flux sont abstraits dans le système d'exploitation et inaccessibles dans la couche application comme l'a déclaré Emmanuel hase. Je le considère comme un Sérieux erreur of Android Devs. Si un mur de sécurité a un trou minuscule, il n'est plus sécurisé. Donc, même si le droïde restreint ou tente de restreindre, il existe d'autres téléphones où on peut avoir ce genre de fonctionnalité. même un noyau de droïde personnalisé peut avoir ce genre de fonctionnalité. Cela ne fait que pauvres utilisateurs de droïde rien d'autre.

1
Neel Basu