Avatar billede jarret Nybegynder
07. november 2005 - 17:00 Der er 44 kommentarer og
1 løsning

Lyd i Java

Jeg mangler et simpelt eksemple på hvordan man afspillet en lydfil i java....nogen der kan hjælpe?
Avatar billede kalp Novice
07. november 2005 - 17:02 #1
Avatar billede kalp Novice
07. november 2005 - 17:02 #2
Avatar billede mikkelbm Nybegynder
07. november 2005 - 17:03 #3
Snakker vi mp3 eller mere simple lydfiler?
Avatar billede kalp Novice
07. november 2005 - 17:04 #4
Avatar billede mikkelbm Nybegynder
07. november 2005 - 17:06 #5
>> Kalp

Jeg tvivler på der står noget i de sidste 2 links, som ikke står i det første ;)
Avatar billede kalp Novice
07. november 2005 - 17:10 #6
hehe I know(:

men kunne være han synes det ene er lettere at forstå end det andet:P
Avatar billede mikkelbm Nybegynder
07. november 2005 - 17:13 #7
Hvis vi snakker mp3 filer, så har jeg stiftet bekendtskab med denne:

http://www.javazoom.net/javalayer/javalayer.html

Som jeg egentlig synes meget godt om.

Der er også kommet et plugin til JMF:

http://java.sun.com/products/java-media/jmf/mp3/download.html
Avatar billede jarret Nybegynder
07. november 2005 - 17:36 #8
det er en wav fil jeg gerne vil afspille
Avatar billede jarret Nybegynder
07. november 2005 - 17:37 #9
kigger lige på jeres links, melder tilbage om en times tid, tak så langt
Avatar billede kalp Novice
07. november 2005 - 17:48 #10
Avatar billede jarret Nybegynder
08. november 2005 - 15:52 #11
den jeg umiddelbart bedst kan overskue er:
http://www.synnottsoftware.com/tutorials/javasound.php

men jeg kan ikke få den til at virke....

import java.applet.*;
import java.io.*;
import java.net.*;

public class SoundTest{
    AudioClip testClip;
    URL testUrl;

    public static void main(String args[]){
        String fileName="crash.wav";
        SoundTest st=new SoundTest(fileName);
    }

    SoundTest(String fileName){
        try{
            testUrl=new URL("file:" + new File(".").getCanonicalPath()
                                + "/" + fileName);
  // Get current directory name, and build URL
            testClip=Applet.newAudioClip(testUrl);
            testClip.play();
        }catch(Exception e){
            System.out.println(e.toString());
        }
    }

}
Avatar billede jarret Nybegynder
08. november 2005 - 15:54 #12
nogle bud på hvad jeg glemmer
Avatar billede jarret Nybegynder
08. november 2005 - 16:07 #13
Jeg får følgende fejl:
Exception in thread "main" java.lang.ClassNotFoundException: lyd
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:164)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:83)
Avatar billede mikkelbm Nybegynder
08. november 2005 - 16:25 #14
Dit eksempel kører fint hos mig.
Avatar billede mikkelbm Nybegynder
08. november 2005 - 16:26 #15
Og hvilken klasse er lyd?
(ClassNotFoundException: lyd)

Og hvor kommer:

com.intellij.rt.execution.application.AppMain.main(AppMain.java:83)

fra ?
Avatar billede mikkelbm Nybegynder
08. november 2005 - 16:27 #16
Hvad hvis du i kommandoprompten stiller dig i den sti hvor du har filerne liggende og skriver:

javac SoundTest.java

Og bagefter:

java SoundTest
Avatar billede jarret Nybegynder
08. november 2005 - 16:30 #17
får du den til at spille lyden
Avatar billede mikkelbm Nybegynder
08. november 2005 - 16:32 #18
Ja, den spiller fint. Prøv det jeg skriver med kommandoprompt. Jeg tror det er dit projekt i IntelliJ der er noget galt med.
Avatar billede jarret Nybegynder
08. november 2005 - 16:32 #19
så giver den en java.lang.NoClassDefFoundError: Soundtest
Avatar billede mikkelbm Nybegynder
08. november 2005 - 16:34 #20
Så står du ikke det rigtige sted.
Avatar billede jarret Nybegynder
08. november 2005 - 16:34 #21
jeg har også fået den til at køre i IntelliJ uden fejl men den siger ingenting
Avatar billede mikkelbm Nybegynder
08. november 2005 - 16:35 #22
Ligger filen samme sted som dine .class filer?
Avatar billede jarret Nybegynder
08. november 2005 - 16:36 #23
den kommer frem når jeg skriver dir??? huumm
Avatar billede jarret Nybegynder
08. november 2005 - 16:36 #24
ja
Avatar billede jarret Nybegynder
08. november 2005 - 16:38 #25
Microsoft Windows XP [version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Kristian>cd IdeaProjects

C:\Documents and Settings\Kristian\IdeaProjects>cd lyd

C:\Documents and Settings\Kristian\IdeaProjects\lyd>dir
Disken i drev C har ikke noget navn.
Diskens serienummer er 24E8-C2C3

Indhold af C:\Documents and Settings\Kristian\IdeaProjects\lyd

08-11-2005  15:21    <DIR>          .
08-11-2005  15:21    <DIR>          ..
08-11-2005  15:21    <DIR>          src
08-11-2005  15:22              549 lyd.iml
08-11-2005  15:22            10.284 lyd.ipr
08-11-2005  15:23    <DIR>          classes
07-11-2005  16:33            6.414 crash.wav
08-11-2005  15:26            25.385 lyd.iws
              4 fil(er)          42.632 byte
              4 mappe(r)  1.556.905.984 byte ledig

C:\Documents and Settings\Kristian\IdeaProjects\lyd>cd src

C:\Documents and Settings\Kristian\IdeaProjects\lyd\src>dir
Disken i drev C har ikke noget navn.
Diskens serienummer er 24E8-C2C3

Indhold af C:\Documents and Settings\Kristian\IdeaProjects\lyd\src

08-11-2005  15:21    <DIR>          .
08-11-2005  15:21    <DIR>          ..
08-11-2005  15:25              697 lyd.java
07-11-2005  16:33            6.414 crash.wav
              2 fil(er)            7.111 byte
              2 mappe(r)  1.556.905.984 byte ledig

C:\Documents and Settings\Kristian\IdeaProjects\lyd\src>javac lyd.java

C:\Documents and Settings\Kristian\IdeaProjects\lyd\src>java lyd
Exception in thread "main" java.lang.NoClassDefFoundError: lyd

C:\Documents and Settings\Kristian\IdeaProjects\lyd\src>
C:\Documents and Settings\Kristian\IdeaProjects\lyd\src>dir
Disken i drev C har ikke noget navn.
Diskens serienummer er 24E8-C2C3

Indhold af C:\Documents and Settings\Kristian\IdeaProjects\lyd\src

08-11-2005  15:21    <DIR>          .
08-11-2005  15:21    <DIR>          ..
08-11-2005  15:25              697 lyd.java
07-11-2005  16:33            6.414 crash.wav
08-11-2005  15:27            1.080 lyd.class
              3 fil(er)            8.191 byte
              2 mappe(r)  1.556.791.296 byte ledig

C:\Documents and Settings\Kristian\IdeaProjects\lyd\src>java lyd.class
Exception in thread "main" java.lang.NoClassDefFoundError: lyd/class

C:\Documents and Settings\Kristian\IdeaProjects\lyd\src>java lyd.class
Exception in thread "main" java.lang.NoClassDefFoundError: lyd/class

C:\Documents and Settings\Kristian\IdeaProjects\lyd\src>java lyd
Exception in thread "main" java.lang.NoClassDefFoundError: lyd

C:\Documents and Settings\Kristian\IdeaProjects\lyd\src>dir
Disken i drev C har ikke noget navn.
Diskens serienummer er 24E8-C2C3

Indhold af C:\Documents and Settings\Kristian\IdeaProjects\lyd\src

08-11-2005  15:21    <DIR>          .
08-11-2005  15:21    <DIR>          ..
08-11-2005  15:25              697 lyd.java
07-11-2005  16:33            6.414 crash.wav
08-11-2005  15:27            1.080 lyd.class
              3 fil(er)            8.191 byte
              2 mappe(r)  1.556.791.296 byte ledig

C:\Documents and Settings\Kristian\IdeaProjects\lyd\src>cd..

C:\Documents and Settings\Kristian\IdeaProjects\lyd>dir
Disken i drev C har ikke noget navn.
Diskens serienummer er 24E8-C2C3

Indhold af C:\Documents and Settings\Kristian\IdeaProjects\lyd

08-11-2005  15:21    <DIR>          .
08-11-2005  15:21    <DIR>          ..
08-11-2005  15:21    <DIR>          src
08-11-2005  15:22              549 lyd.iml
08-11-2005  15:22            10.284 lyd.ipr
08-11-2005  15:23    <DIR>          classes
07-11-2005  16:33            6.414 crash.wav
08-11-2005  15:52            26.247 lyd.iws
              4 fil(er)          43.494 byte
              4 mappe(r)  1.554.546.688 byte ledig

C:\Documents and Settings\Kristian\IdeaProjects\lyd>cd src

C:\Documents and Settings\Kristian\IdeaProjects\lyd\src>dir
Disken i drev C har ikke noget navn.
Diskens serienummer er 24E8-C2C3

Indhold af C:\Documents and Settings\Kristian\IdeaProjects\lyd\src

08-11-2005  15:21    <DIR>          .
08-11-2005  15:21    <DIR>          ..
07-11-2005  16:33            6.414 crash.wav
08-11-2005  15:27            1.080 lyd.class
08-11-2005  15:52              677 SoundTest.java
              3 fil(er)            8.171 byte
              2 mappe(r)  1.554.546.688 byte ledig

C:\Documents and Settings\Kristian\IdeaProjects\lyd\src>javac SoundTest
javac: invalid flag: SoundTest
Usage: javac <options> <source files>
where possible options include:
  -g                        Generate all debugging info
  -g:none                    Generate no debugging info
  -g:{lines,vars,source}    Generate only some debugging info
  -nowarn                    Generate no warnings
  -verbose                  Output messages about what the compiler is doing
  -deprecation              Output source locations where deprecated APIs are u
sed
  -classpath <path>          Specify where to find user class files
  -cp <path>                Specify where to find user class files
  -sourcepath <path>        Specify where to find input source files
  -bootclasspath <path>      Override location of bootstrap class files
  -extdirs <dirs>            Override location of installed extensions
  -endorseddirs <dirs>      Override location of endorsed standards path
  -d <directory>            Specify where to place generated class files
  -encoding <encoding>      Specify character encoding used by source files
  -source <release>          Provide source compatibility with specified release

  -target <release>          Generate class files for specific VM version
  -version                  Version information
  -help                      Print a synopsis of standard options
  -X                        Print a synopsis of nonstandard options
  -J<flag>                  Pass <flag> directly to the runtime system


C:\Documents and Settings\Kristian\IdeaProjects\lyd\src>javac SoundTest.java

C:\Documents and Settings\Kristian\IdeaProjects\lyd\src>java Soundtest
Exception in thread "main" java.lang.NoClassDefFoundError: Soundtest

C:\Documents and Settings\Kristian\IdeaProjects\lyd\src>java SoundTest
Exception in thread "main" java.lang.NoClassDefFoundError: SoundTest

C:\Documents and Settings\Kristian\IdeaProjects\lyd\src>java SoundTes.classt
Exception in thread "main" java.lang.NoClassDefFoundError: SoundTes/classt

C:\Documents and Settings\Kristian\IdeaProjects\lyd\src>java SoundTes.class
Exception in thread "main" java.lang.NoClassDefFoundError: SoundTes/class

C:\Documents and Settings\Kristian\IdeaProjects\lyd\src>cd..

C:\Documents and Settings\Kristian\IdeaProjects\lyd>cd..

C:\Documents and Settings\Kristian\IdeaProjects>cd soundtest

C:\Documents and Settings\Kristian\IdeaProjects\SoundTest>javac SoundTest.java
error: cannot read: SoundTest.java
1 error

C:\Documents and Settings\Kristian\IdeaProjects\SoundTest>dir
Disken i drev C har ikke noget navn.
Diskens serienummer er 24E8-C2C3

Indhold af C:\Documents and Settings\Kristian\IdeaProjects\SoundTest

08-11-2005  16:28    <DIR>          .
08-11-2005  16:28    <DIR>          ..
08-11-2005  16:28    <DIR>          src
08-11-2005  16:29    <DIR>          classes
08-11-2005  16:29              549 SoundTest.iml
08-11-2005  16:29            10.296 SoundTest.ipr
07-11-2005  16:33            6.414 crash.wav
08-11-2005  16:30            24.867 SoundTest.iws
              4 fil(er)          42.126 byte
              4 mappe(r)  1.555.546.112 byte ledig

C:\Documents and Settings\Kristian\IdeaProjects\SoundTest>cd src

C:\Documents and Settings\Kristian\IdeaProjects\SoundTest\src>javac SoundTest.ja
va

C:\Documents and Settings\Kristian\IdeaProjects\SoundTest\src>java SoundTest
Exception in thread "main" java.lang.NoClassDefFoundError: SoundTest

C:\Documents and Settings\Kristian\IdeaProjects\SoundTest\src>dir
Disken i drev C har ikke noget navn.
Diskens serienummer er 24E8-C2C3

Indhold af C:\Documents and Settings\Kristian\IdeaProjects\SoundTest\src

08-11-2005  16:28    <DIR>          .
08-11-2005  16:28    <DIR>          ..
08-11-2005  16:29              672 SoundTest.java
07-11-2005  16:33            6.414 crash.wav
08-11-2005  16:31            1.069 SoundTest.class
              3 fil(er)            8.155 byte
              2 mappe(r)  1.555.529.728 byte ledig

C:\Documents and Settings\Kristian\IdeaProjects\SoundTest\src>java SoundTest
Exception in thread "main" java.lang.NoClassDefFoundError: SoundTest

C:\Documents and Settings\Kristian\IdeaProjects\SoundTest\src>dir
Disken i drev C har ikke noget navn.
Diskens serienummer er 24E8-C2C3

Indhold af C:\Documents and Settings\Kristian\IdeaProjects\SoundTest\src

08-11-2005  16:28    <DIR>          .
08-11-2005  16:28    <DIR>          ..
08-11-2005  16:29              672 SoundTest.java
07-11-2005  16:33            6.414 crash.wav
08-11-2005  16:31            1.069 SoundTest.class
              3 fil(er)            8.155 byte
              2 mappe(r)  1.555.496.960 byte ledig

C:\Documents and Settings\Kristian\IdeaProjects\SoundTest\src>Java SoundTest
Exception in thread "main" java.lang.NoClassDefFoundError: SoundTest

C:\Documents and Settings\Kristian\IdeaProjects\SoundTest\src>java SoundTest
Exception in thread "main" java.lang.NoClassDefFoundError: SoundTest

C:\Documents and Settings\Kristian\IdeaProjects\SoundTest\src>java SoundTest.cla
ss
Exception in thread "main" java.lang.NoClassDefFoundError: SoundTest/class

C:\Documents and Settings\Kristian\IdeaProjects\SoundTest\src>
Avatar billede jarret Nybegynder
08. november 2005 - 16:39 #26
hov det var lidt for meget. det er det sidste der er interessant
Avatar billede mikkelbm Nybegynder
08. november 2005 - 16:41 #27
Compiler den hvis du skriver:

javac SoundTest.java ?
Avatar billede jarret Nybegynder
08. november 2005 - 16:42 #28
ja
Avatar billede mikkelbm Nybegynder
08. november 2005 - 16:44 #29
Så burde det også virke hvis du skriver:

java SoundTest
Avatar billede mikkelbm Nybegynder
08. november 2005 - 16:45 #30
Eller måske...

java -cp . SoundTest
Avatar billede jarret Nybegynder
08. november 2005 - 16:46 #31
C:\Documents and Settings\Kristian\IdeaProjects\SoundTest\src>java -cp.SoundTest

Unrecognized option: -cp.SoundTest
Could not create the Java virtual machine.

C:\Documents and Settings\Kristian\IdeaProjects\SoundTest\src>
Avatar billede jarret Nybegynder
08. november 2005 - 16:47 #32
jeg prøvede lige med mellemrum, så kørte den uden fejl, men ingen lyd.....
Avatar billede mikkelbm Nybegynder
08. november 2005 - 16:49 #33
Jeg prøver lige at lave et andet eksempel. Jeg får faktisk også problemer med nogle af mine lydfiler med dit eksempel...
Avatar billede jarret Nybegynder
08. november 2005 - 16:51 #34
ok cool, måske er det min url der ikke er rigtig .... der står i java doc at der ikke sker noget hvis den ikke kan finde filen
Avatar billede mikkelbm Nybegynder
08. november 2005 - 16:59 #35
Kan du ikke prøve at køre dit eksempel med en anden filtype - f.eks. en midi fil.

Jeg prøvede nemlig dit eksempel med en midi fil og der virkede det fint. Men da jeg skiftede til en wav fil, så gik det galt.
Avatar billede mikkelbm Nybegynder
08. november 2005 - 17:00 #36
Du kan også lige få et lille eksempel, som jeg også har prøvet med midifiler og ved virker:

import java.applet.*;
import java.net.*;


public class Test
{
    private AudioClip lyd;
   
    public Test(String wav)
    {
        URL lydfil = getClass().getResource(wav);
        lyd = Applet.newAudioClip(lydfil);
    }
   
    public void afspil()
    {
        lyd.play();       
    }

    public static void main(String[] args)
    {
        Test lyd = new Test("test.mid");
        lyd.afspil();
    }   
}
Avatar billede mikkelbm Nybegynder
08. november 2005 - 17:08 #37
Jeg har lige søgt lidt rundt omkring, og det ser ud til at der er flere der har problemer med at afspille wav-filer. Det er vist noget med at det format kan komprimeres (uden at jeg rigtig har forstand på det) og derfor er der problemer med at køre det i Java.
Avatar billede jarret Nybegynder
08. november 2005 - 17:13 #38
import java.applet.*;
import java.net.*;


public class Test
{
    private AudioClip lyd;

    public Test(String wav)
    {
        URL lydfil = getClass().getResource(wav);
        lyd = Applet.newAudioClip(lydfil);
    }

    public void afspil()
    {
        lyd.play();
    }

    public static void main(String[] args)
    {
        Test lyd = new Test("crash.wav");
        lyd.afspil();
    }
}

ingen lyd........
Avatar billede mikkelbm Nybegynder
08. november 2005 - 17:14 #39
Har du prøvet med et andet format??
Avatar billede mikkelbm Nybegynder
08. november 2005 - 17:14 #40
Hvis din wav-fil er komprimeret, kan den ikke afspilles.
Avatar billede jarret Nybegynder
08. november 2005 - 17:15 #41
HAAAAAAALLLLOOOO nu fik jeg den til at virke med midi!!!!!!!!!!!!!1
Avatar billede mikkelbm Nybegynder
08. november 2005 - 17:17 #42
Ja, det har hele tiden virket. Det har simpelthen været din wav fil der ikke kunne afspilles.
Avatar billede jarret Nybegynder
08. november 2005 - 17:18 #43
ok, super jeg finder nogle ikke komprimerede, ellers midi .

Mange tak for hjælpen, den her er vist også din
http://www.eksperten.dk/spm/662792

Lægger du svar
Avatar billede mikkelbm Nybegynder
08. november 2005 - 17:18 #44
Svar...
Avatar billede jarret Nybegynder
08. november 2005 - 17:21 #45
jeg syntes bestemt du har fortjent den anden også
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