Jump to content



java swing equalizer,java sound


magicman

Recommended Posts

Δημοσιεύτηκε

καλησπερα, κ χρονια πολλα!

οτι λεει ο τιτλος, ειναι σε java swing, δλδ εχει jsliders, που αλλαζουν τιμες σε labels, θελω να το επεκτεινω, ωστε η αλλαγες να γινονται σε real-time σε ηχο κανονικο...

βρηκα την java sound στο api..

αλλα δεν βρισκω τις μεθοδους που θελώ....

καμια βοηθεια απο τους τζαβαδες του φορουμ????

ευχαριστω!

Τι εννοείς λέγοντας ότι δεν βρίσκεις τις μεθόδους που θες...?

Λογικά το object σου κάνει expose κάποια public members και functions και το implementation από πίσω, κάνει την δουλειά που πρέπει... αν εσύ θέλεις να αλλάξεις την λειτουργία του, τότε θα πρέπει να κάνεις override το υπάρχον implementation και να κάνεις αυτό που θες, όπως το θες φτιάχνοντας δικό σου object που κάνει inherit την library που έχεις... αυτό ισχύει αν η library που έχεις είναι ήδη linked ή όχι... αλλά αν έχεις και το source code πας απευθείας και το κάνεις από εκεί, πράγμα το οποίο συνήθως δεν είναι η ιδανική λύση...

import javax.sound.sampled.AudioInputStream;

import javax.sound.sampled.AudioSystem;

import javax.sound.sampled.*;

import java.io.File;

import java.io.IOException;

εχω χρησιμοποιεισει μεχρι τωρα αυτα...

λοιπον με ενα διαβασμα που εκανα, υπαρχει το sampled , το midi ,

http://java.sun.com/j2se/1.5.0/docs/guide/sound/programmer_guide/chapter1.html

μεχτι τωρα εχω κανει τα buttons play, stop.

τωρα ψαχνω για το volume..

εχω βρει αυτο

http://java.sun.com/j2se/1.4.2/docs/api/javax/sound/sampled/FloatControl.Type.html

απο οσο καταλαβα, η java παιζει κ με τα bytesarrays, αν θελεις να γινεις low-level...

το παραπανω τωρα ψαχνω να δω πως θα χρησιμοποιησω..

@jaco, αν θελεις ριξε μια ματια σε αυτα...

ηθελα να πω, οτι νομιζα οτι υπαρχουν ετοιμες μεθοδους...

αλλα δεν υπαρχουν... το μονο που βρηκα ειναι αυτο στο παραπανω λινκ..

To FloatControl.Type είναι απλά ένα control object, το οποίο, το υποστηρίζει ένα audio interface της java... στην ουσία αυτό που πρέπει να κάνεις είναι να δημιουργήσεις ένα νέο instance ενός FloatControl object, το οποίο θα το φορτώσεις με το floatcontrol του interface και θα χειριστείς τις μεθόδους του από το instance...

Δηλ...:

FloatControl mstGain = (FloatControl) <το audio interface που έχεις δηλώσει>.getControl( FloatControl.Type.MASTER_GAIN );

και μετά με την setValue αλλάζεις την τιμή του...

mstGain.setValue( 98.0F );

Μέχρι εκεί μπορώ να σε πάω βάση του documentation, δεν το έχω χρησιμοποιήσει, οπότε από εδώ και πέρα πειραματίζεσαι...

Εδιτ...:

Για byte arrays και τέτοια ξέχνα το, γιατί πρέπει να φτιάξεις δικούς σου audio circular buffers (για καλύτερο memory management) και να καταναλώνεις μετά τα δεδομένα, πράγμα το οποίο θέλει πείρα, γιατί πρέπει να είναι ταχύτατο, οπότε συνεχίζεις με έτοιμες classes, οι οποίες θεωρητικά είναι trimmed...

με το floatcontrol θα προσπαθησω να παιξω.. βρηκα κ πολλα πραγματα με bytes arrays.. κ αλλα μεχρι κ λογαριθμους ειχε μεσα :p

πανω κατω εχω καταλαβει την δομη ....

ευχαριστω κ παλι. θα ενημερωσω τι εκανα...

με το floatcontrol θα προσπαθησω να παιξω.. βρηκα κ πολλα πραγματα με bytes arrays.. κ αλλα μεχρι κ λογαριθμους ειχε μεσα :p

πανω κατω εχω καταλαβει την δομη ....

ευχαριστω κ παλι. θα ενημερωσω τι εκανα...

edit...

παιρνω ενα ωραιο java.lang.IllegalArgumentException: Master Gain not supported

ψαχνω να βρω τι ειναι...

Archived

This topic is now archived and is closed to further replies.

×
×
  • Δημιουργία...

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.