Axelfc Δημοσ. 15 Σεπτεμβρίου 2005 Δημοσ. 15 Σεπτεμβρίου 2005 Προσπαθω να κανω ενα προγραμμα σε java το οποιο θα μου επιτρεπει να καταγραφω σε αρχειο, wav η au, τον ηχο που ακουω απο τα ηχεια του υπολογιστη μου πχ. mp3 που παιζει με το winamp. Για την ωρα καταφερα να καταγραψω μονο τον ηχο που προερχεται απο το μικροφωνο το οποιο ομως δεν μου κανει. Κοιταξα το java sound api και το JMF αλλα δεν βρηκα κατι σχετικο... Ουτε και το google απεφερε καποιο αποτελεσμα... Εχει κανεις καμια ιδεα πως μπορει να γινει κατι τετοιο?
bobosss Δημοσ. 16 Σεπτεμβρίου 2005 Δημοσ. 16 Σεπτεμβρίου 2005 rixe mia matia sthn sdl gia java.den xerw kata poso tha se vohthisi alla den xaneis kati...
ouraniskos Δημοσ. 22 Σεπτεμβρίου 2005 Δημοσ. 22 Σεπτεμβρίου 2005 mia aplh hacky idea - pou isws thn exeis hdh skeftei - einai na enwseis thn e3odo twn speakers h th line-out me to mic sth karta hxou sou... meta opws eipes boreis na kaneis th douleia sou mia xara me to JMF.
Axelfc Δημοσ. 22 Σεπτεμβρίου 2005 Μέλος Δημοσ. 22 Σεπτεμβρίου 2005 Το εχω σκεφτει αυτο που λες ouraniskos, αλλα δυστυχως μετα δεν θα μπορω να γραψω αν θελω συγχρονως και το μικροφωνο και τα ηχεια. Δεν ξερω και αν υπαρχει "ταυ" με δυο εισοδους και μια εξοδο... Anyway thanks για την ιδεα αλλα δε με βολευει σαν λυση. Εχω φαει αρκετες μερες ψαχνοντας στο web και στα api της java, αλλα δεν εχω βρει ακομα τροπο να γραψω απο τα speakers. Εφτιαξα αυτο το προγραμματκι το οποιο μου δειχνει απο που επιτρεπεται εγγραφη (?) η ποιο στοιχειο μπορει να χρησιμοποιηθει. Αν καποιος εχει καποια ιδεα ας την πει... > import java.io.*; import javax.sound.sampled.*; import java.util.*; public class Tester { public static void main(String[] args) { if (AudioSystem.isLineSupported(Port.Info.LINE_IN)) System.out.println("\nLINE-IN is supported"); else System.out.println("\nLINE-IN is NOT supported"); if (AudioSystem.isLineSupported(Port.Info.LINE_OUT)) System.out.println("LINE-OUT is supported"); else System.out.println("LINE-OUT is NOT supported"); if (AudioSystem.isLineSupported(Port.Info.SPEAKER)) System.out.println("SPEAKER is supported"); else System.out.println("SPEAKER is NOT supported"); if (AudioSystem.isLineSupported(Port.Info.MICROPHONE)) System.out.println("MICROPHONE is supported\n"); else System.out.println("MICROPHONE is NOT supported\n"); Mixer.Info[] mixerInfos; Mixer mixer; Line[] lines; Line.Info lInfo; mixerInfos = AudioSystem.getMixerInfo(); for (int index=0; index<mixerInfos.length; index++) { System.out.println("Mixer: "+ mixerInfos[index].toString() + " " + mixerInfos[index].getDescription()); mixer = AudioSystem.getMixer(mixerInfos[index]); System.out.println("mx: "+mixer); lines = mixer.getSourceLines(); System.out.println("Line="+lines.length); for (int j=0; j<lines.length; j++) { lInfo = lines[j].getLineInfo(); System.out.println("LineInfo: "+lInfo.toString()); } } } } Οριστε και το output σε μενα. > C:\Projects\Tester>java Tester LINE-IN is supported LINE-OUT is NOT supported SPEAKER is supported MICROPHONE is supported Mixer: ?????? ????????? ???????? ????, version Unknown Version Direct Audio Device: DirectSound Playback mx: com.sun.media.sound.DirectAudioDevice@1389e4 Line=0 Mixer: Vinyl AC'97 Audio (WAVE), version Unknown Version Direct Audio Device: DirectSound Playback mx: com.sun.media.sound.DirectAudioDevice@2e7263 Line=0 Mixer: ?????? ????????? ???????? ???????????, version Unknown Version Direct Audio Device: DirectSound Capture mx: com.sun.media.sound.DirectAudioDevice@157f0dc Line=0 Mixer: Vinyl AC'97 Audio (WAVE), version Unknown Version Direct Audio Device: DirectSound Capture mx: com.sun.media.sound.DirectAudioDevice@863399 Line=0 Mixer: Java Sound Audio Engine, version 1.0 Software mixer and synthesizer mx: com.sun.media.sound.HeadspaceMixer@a59698 Line=0 Mixer: Port Vinyl AC'97 Audio (WAVE), version 5.10 Port Mixer mx: com.sun.media.sound.PortMixer@141d683 Line=0
javanidhs Δημοσ. 22 Σεπτεμβρίου 2005 Δημοσ. 22 Σεπτεμβρίου 2005 Με ιδιαιτερη εποφυλαξη γι'αυτα που γραφω..νομιζω οτι μαλλον δεν μπορεις να το κανεις αυτο που θες..και μαλλον θα πρεπει να οδηγηθεις σε λυσεις JNI δηλαδη να καλεσεις κωδικα συστηματος (C, C++) ο οποιος θα σου παρεχει την συγκεκριμενη ευκολια1 παντα με επιφυλαξη!
Axelfc Δημοσ. 22 Σεπτεμβρίου 2005 Μέλος Δημοσ. 22 Σεπτεμβρίου 2005 Η επιφυλαξη σου javanidhs εχει γινει σχεδον πεποιθηση μου... Δε βλεπω να γινεται αυτο που θελω, οποτε ηδη εχω αρχισει να ψαχνω για κωδικα σε c/c++. Thanks σε ολους παντως.
billpeppas Δημοσ. 22 Σεπτεμβρίου 2005 Δημοσ. 22 Σεπτεμβρίου 2005 Δεν νομίζω πως γίνεται αυτό που ζητάς μέσω JAVA. Αλλά και αν γίνεται...τι resource hogging έχει να πέσει ένας θεός ξέρει.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.