Bonjour,
Je veux faire une capture de son à partir de mon micro, j'ai trouvé un petit bout de code mais il me génère une exception .voilà le bout de code :
voilà l'erreur géneré :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 import javax.media.CaptureDeviceInfo; import javax.media.CaptureDeviceManager; import javax.media.DataSink; import javax.media.Manager; import javax.media.MediaLocator; import javax.media.Processor; import javax.media.protocol.DataSource; import javax.media.protocol.FileTypeDescriptor; import jmapps.util.StateHelper; public class ReadOnAudioDevice { public static void main(String[] args) { // récupération dun capture device CaptureDeviceInfo captureDevice=CaptureDeviceManager.getDevice("JavaSound audio capture"); // récupération du MediaLocator lié au périphérique de capture MediaLocator mediaLocator = captureDevice.getLocator(); Processor processor = null; StateHelper stateHelper = null; try { // création d'un processeur processor = Manager.createProcessor(mediaLocator); // création d'un objet helper permettant de simplifier la configuration stateHelper = new StateHelper(processor); // configuration du processeur stateHelper.configure(); // configuration de la destination => format Wave processor.setContentDescriptor(new FileTypeDescriptor(FileTypeDescriptor.WAVE)); //initialisations stateHelper.realize(); // récupération de la source de sortie DataSource source = processor.getDataOutput(); // création d'un MediaLocator lié à un fichier (destination) MediaLocator destination = new MediaLocator("file://c:/samples/capture.wav"); // création d'un DataSink pour écrire dans le fichier le flux entrant // (synchronisation entre la source et la destination) DataSink fileWriter = Manager.createDataSink(source, destination); // ouveture de la lecture / enregistrement (préparation) fileWriter.open(); // démarrage du processor et du filewriter fileWriter.start(); // capture 10 secondes stateHelper.playToEndOfMedia(10000); // fermeture de la capture stateHelper.close(); // fermeture du fichier fileWriter.close(); } catch (Exception e) { System.out.println("error : " + e); } } }
Exception in thread "main" java.lang.NullPointerException
at ReadOnAudioDevice.main(ReadOnAudioDevice.java:15)
Partager