IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Prehrávanie zvukov (súbory wav) v Jave

V dnešnom tutoriále si ukážeme, ako jednoducho prehrať zvukový súbor wav v jazyku Java. Je to veľmi jednoduchá vec a preto si nakoniec ukážeme aj ako si urobiť taký jednoduchý wav prehrávač.

Všetko čo budeme potrebovať je trieda "Music", do ktorej si importujeme potrebné knižnice a nastavíme konštruktor s jedným parametrom. Parameter bude String a bude označovať cestu k nášmu súboru. Tiež použijeme triedu "MyJFrame", ktorá všetko spustí cez metódu main.

Najprv si ukážeme triedu Music:

import java.net.MalformedURLException;
import java.net.URL;
import java.applet.*;

public class Music {

    private URL soubor;

    public Music(String cesta){
       try {
            soubor = new URL("file:"+cesta);
        } catch (MalformedURLException vyjimka) {
            System.err.println(vyjimka);
        }
        Applet.newAudioClip(soubor).play();
    }

}

A čo vlastne tieto knižnice robia? No prvý z nich slúžia na odchytenie MalformedURLEx­ception. V druhej sa importuje zadanie cesty k súboru a v treťom balíku importujeme triedu applet a jej metódy.

Ďalej sme si vytvorili privátne atribút URL, do ktorého priradíme cestu k súboru, ktorú získame z parametra v konstruktoru. Samozrejme že všetko musí byť vo vnútri bloku Try a všetko bude strážiť MalformedURLEx­ception. Vidíte, je to celkom jednoduché. Teraz už len stačí vytvoriť si hlavnú triedu s názvom MyJFrame, v ktorej sa všetko spustí cez metódu main:

 public class MyJFrame
{
    public static void main(String args[]){
        Music music = new Music("song.wav");
    }
}

V triede MyJFrame som použil súbor song.wav, ktorý nájdete v prílohe zdrojového kódu s ďalšími súbormi wav.

Wav prehrávač

Tak a teraz ako sem sľúbil, si urobíme jednoduchý program, ktorý bude prehrávať súbory wav podľa určenia. Tak po prvé si kompletne prerobíme triedu MyJFrame. Všetko čo v nej máte si vymažte a napíšeme si základné rozloženie triedy MyJFrame.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class MyJFrame extends JFrame
{
   public JButton spust, vyber;
   private String file;
   public static MyJFrame instance;

    public MyJFrame()
    {
      this.setSize(400,400);
      this.setTitle("Přehrávač zvukových souborů");
      this.setComponents();
      this.setListeners();
    }

    public void setComponents(){

    }

    public void setListeners(){

    }

    public static Frame nastav(){
      MyJFrame okno = new MyJFrame();
      okno.setVisible(true);
      okno.setLocationRelativeTo(null);
      return okno;
    }

    public static void main(String args[]){
      MyJFrame.nastav();
    }

}

Najprv sme si importovali potrebné knižnice. Potom sme si v konstruktoru nastavili veľkosť a titulok a zavolali si potrebné metódy. Nakoniec sme vytvorili statickú metódu Frame, v ktorej sú nastavené základné vlastnosti okna. Nakoniec metóda main, ktorá všetko spustí.

Tak a teraz si nastavíme metódu setComponents ();

Container pane = this.getContentPane();
pane.setLayout(new FlowLayout());
pane.setBackground(Color.PINK);
this.vyber = new JButton("vyber");
this.spust = new JButton("spust");
pane.add(vyber);
pane.add(spust);

Metóda nerobí nič výnimočné. Do kontajnera si uložíme panel, nastavíme mu FlowLayout a pridáme dve tlačidlá. Formulár by mal vyzerať nasledovne:

prehravac - Práca so súbormi v Jave

Teraz je na rade metóda setListeners (), ktorá je o niečo zaujímavejšie.

 this.vyber.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
    FileDialog fd = new FileDialog(instance);
    fd.setMode(FileDialog.LOAD);
    fd.setVisible(true); //zviditelní okno
    String soubor = fd.getDirectory() + fd.getFile(); // vrátí cestu ke složce + cestu k souboru.
        if(soubor != null){
        file = soubor;
        }
      }
   }
);

    this.spust.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
        Music m = new Music(file);  // file = absolutní cesta k souboru získaná z proměnné soubor
        }
   }
);

V metóde si nastavíme tlačidle vyber a štart aktívny naslouchávače. Po stlačení tlačidla vyber sa vytvorí FileDialog a na obrazovke vyskočí dialógové okno,

okno - Práca so súbormi v Jave

v ktorom si môžeme vybrať súbor vďaka vlastnosi fd.setMode (FileDialog.LOAD). Potom si uložíme cestu súboru do premennej súbor. Naši premennú file necháme odkázať na premennú súbor.

Po stlačení tlačidla štart sa vytvorí inštancia triedy Music a spustí sa súbor. Tak a súbor je úplne hotový.

Tu je ešte celá trieda MyJFrame, tak ako má celá vyzerať.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class MyJFrame extends JFrame
{
  public JButton spust, vyber;
  private String file;
   public static MyJFrame instance;
    public MyJFrame()
    {
      this.setSize(400,400);
      this.setTitle("Přehrávač zvukových souborů");
      this.setComponents();
      this.setListeners();
    }

    public void setComponents(){
      Container pane = this.getContentPane();
      pane.setLayout(new FlowLayout());
      pane.setBackground(Color.PINK);
      this.vyber = new JButton("vyber");
      this.spust = new JButton("spust");
      pane.add(vyber);
      pane.add(spust);
    }

    public void setListeners(){
    this.vyber.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
    FileDialog fd = new FileDialog(instance);
    fd.setMode(FileDialog.LOAD);
    fd.setVisible(true);
    String soubor = fd.getDirectory() + fd.getFile();
        if(soubor != null){
        file = soubor;
        }
     }
  }
);

    this.spust.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
        Music m = new Music(file);
    }
  }
);
    }

    public static Frame nastav(){
      MyJFrame okno = new MyJFrame();
      okno.setVisible(true);
      okno.setLocationRelativeTo(null);
      return okno;
    }

    public static void main(String args[]){
     MyJFrame.nastav();
    }
}

Keby niekto aj napriek tomu nechápal nejakú časť kódu, tak si stiahnite súbor v prílohe tohto článku, kde nájdete aj súbory wav pre prehranie.

V nasledujúcom kvíze, Kvíz - Plugin JAXB a binárne súbory v Jave, si vyskúšame nadobudnuté skúsenosti z predchádzajúcich lekcií.


 

Predchádzajúci článok
Práca s vlastnými súbory v Jave - Ukladanie a načítanie zips
Všetky články v sekcii
Práca so súbormi v Jave
Preskočiť článok
(neodporúčame)
Kvíz - Plugin JAXB a binárne súbory v Jave
Článok pre vás napísal Milan Gallas
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje programování, hardwaru a počítačovým sítím.
Aktivity