Avatar billede meltinis Nybegynder
07. juli 2003 - 16:45 Der er 6 kommentarer og
1 løsning

Lave beep-lyd i JAVA

Jeg sidder og har brug for at lave en lyd for at få brugers opmærksomhed!!!

Jeg har forsøgt med

Toolkit.getDefaultToolkit().beep();

men denne giver ingen lyd :(

Jeg har lavet en lille programdel for at teste den, men det giver ingen lyd:

import java.awt.*;

public class Lyd
{
  public static void main(String[] args)
  {
    Toolkit.getDefaultToolkit().beep();
  }
}

HVORFOR?????
Avatar billede medions Nybegynder
07. juli 2003 - 16:48 #1
Avatar billede meltinis Nybegynder
07. juli 2003 - 17:00 #2
Been there!!! Det virker ikke med den løsning... der kommer ikke nogen lyd :(
Det er den samme løsning jeg har beskrevet ovenfor, men det virker ikke
Avatar billede soreno Praktikant
07. juli 2003 - 17:26 #3
Prøv at kigge på dette:
import java.io.*;
import java.util.*;
import javax.sound.sampled.*;

public class Main
{
        public static byte[] calcSin(int hz)
        {
            int samples = (int)44100 / hz;
            byte sinCurve[] = new byte[samples];
           
            for(int i=0;i<sinCurve.length;i++)
            {
                sinCurve[i] = (byte)(Math.sin(i)*250);
            }
           
            return sinCurve;       
        }
       
        public static void main(String args[])
        {
            byte sinCurve[] = calcSin(440);
           
            try
            {
                AudioFormat outFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 44100, 16, 2, 4, 44100, false);
                DataLine.Info lineInfo = new DataLine.Info( SourceDataLine.class, outFormat, 14112);
                SourceDataLine sourceLine = (SourceDataLine)AudioSystem.getLine(lineInfo);
                sourceLine.open(outFormat, sourceLine.getBufferSize());
                sourceLine.start();
               
                for(int i=0;i<2000;i++)//skriv sinus 2000 gange
                {
                    sourceLine.write(sinCurve, 0, sinCurve.length);
                }
               
                sourceLine.stop();
                sourceLine.close();
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }
}

Det er noget som jeg eksperimenterede med for noget tid siden. Det virker kun halvt (kan ikke ændre tone..) - det er siden gået i min glemmebog.

Måske du kan bruge det til noget ?
Avatar billede meltinis Nybegynder
07. juli 2003 - 17:45 #4
Det var dog voldsomt meget kode for en enkelt lyd, men ok det virker!!!
Du skulle vel ikke have en idé om hvorfor beep() ikke virker?
Avatar billede simonvalter Praktikant
07. juli 2003 - 18:17 #5
du kører sikkert på¨windows xp så.

jeg fandt dette om emnet ..

This is an outcome of the "C# vs Java" war that's going on right now.
Microsoft makes the Java sandbox more and more restricted over the OS
settings.
getDefaultToolkit() works just fine on Windows 95/98, with partial problems
on Windows MI and it near doesn't work on Windows XP.
Avatar billede nielsbrinch Nybegynder
07. juli 2003 - 18:25 #6
Jeg kan anbefale at bruge den klasse der hedder AudioClip under Applet. Du kan godt bruge den selvom det ikke er en applet du laver. Det fik jeg til at virke. Kan dog ikke huske helt nøjagtigt hvordan - og jeg har mistet kildekoden.
Avatar billede mora Nybegynder
28. juli 2003 - 03:51 #7
AudioClip sound = Applet.newAudioClip(getClass().getResource("sounds/alert.wav"));
try { sound.play(); }
catch (Exception e) {}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester