Как использовать звуковой файл в приложение.

Тема в разделе "Java", создана пользователем Dasha, 5 май 2006.

Статус темы:
Закрыта.
  1. Dasha

    Dasha Гость

    Не могу нигде найти как запустить звуковой файл в приложение. Мне надо, чтобы при нажатии на кнопку на фрейме проигрывался файл. Нашла только кое-что про класс AudioSystem. Но как это реализуеться не понимаю. С помощью этого класса можно запустить звуковой файл???? Если да то как это реализуеться, (если можно распишите подробно с объяснениями),если нет, то как это лучше сделать. Заранее благодарю!!!!!!
     
  2. lotos4u

    lotos4u Гость

    <!--QuoteBegin-Dasha+5:05:2006, 17:58 -->
    <span class="vbquote">(Dasha @ 5:05:2006, 17:58 )</span><!--QuoteEBegin-->Не могу нигде найти как запустить звуковой файл в приложение. Мне надо, чтобы при нажатии на кнопку на фрейме проигрывался файл. Нашла только кое-что про класс AudioSystem. Но как это реализуеться не понимаю. С помощью этого класса можно запустить звуковой файл???? Если да то как это реализуеться, (если можно распишите подробно с объяснениями),если нет, то как это лучше сделать. Заранее благодарю!!!!!!
    [snapback]35076" rel="nofollow" target="_blank[/snapback]​
    [/quote]


    Try to read this...

    Playing audio files in Java applications is not officially supported in the current release of Java. But fear not, there is a way! This tip will show you how -- starting with a description of the basic steps involved in playing audio clips in Java applets and then moving on to Java application support.

    Playing audio clips in applets is quite simple and involves the following steps:

    Create an AudioClip object

    Load .au sound file into AudioClip

    Play sounds once or loop continuously

    Stop playback

    Here's how the code for these steps looks:



    import java.applet.*;
    AudioClip ac = getAudioClip(getCodeBase(), soundFile);
    ac.play(); //play once
    ac.stop(); //stop playing
    ac.loop(); //play continuously


    It would seem logical to use this same code to play audio clips in a Java application. Unfortunately, if you do that you will get errors from the compiler. Why? Because the AudioClip object and the getAudioClip() method are part of the java.applet package -- and are not part of applications. The good news is we can dive down and make things work ourselves.

    The trick to solving this problem is to use some undocumented features that are provided by Sun in its JDK. Taking a peek inside the classes.zip file from the Sun JDK (using any of the various zipfile utilities), we find not only the standard Java packages such as java.applet but also sun.audio. (These are in the directory sun/audio.)

    The sun.audio package contains everything we need to be able to play audio clips! Here's the code:



    import sun.audio.*; //import the sun.audio package
    import java.io.*;
    //** add this into your application code as appropriate
    // Open an input stream to the audio file.
    InputStream in = new FileInputStream(Filename);
    // Create an AudioStream object from the input stream.
    AudioStream as = new AudioStream(in);
    // Use the static class member "player" from class AudioPlayer to play
    // clip.
    AudioPlayer.player.start(as);
    // Similarly, to stop the audio.
    AudioPlayer.player.stop(as);

    To use a URL as the audio stream source, substitute the following for the input stream and audio stream setup:

    AudioStream as = new AudioStream (url.openStream());

    Playing the audio stream continuously adds a bit more complexity:

    // Create audio stream as discussed previously.
    // Create AudioData source.
    AudioData data = as.getData();
    // Create ContinuousAudioDataStream.
    ContinuousAudioDataStream cas = new ContinuousAudioDataStream (data);
    // Play audio.
    AudioPlayer.player.play (cas);
    // Similarly, to stop the audio.
    AudioPlayer.player.stop (cas);


    And there you have it. Remember, this technique uses undocumented features; there are no guarantees that it will work with anything but the current Sun JDK.
     
  3. Guest_Dasha_*

    Guest_Dasha_* Гость

    Спасибо за ответ. Я уже решила эту задачу. А так я тоже пробовала,но у меня почему-то не получилось.
     
  4. Guest_lotos4u_*

    Guest_lotos4u_* Гость

    <!--QuoteBegin-Guest_Dasha_*+6:05:2006, 13:56 -->
    <span class="vbquote">(Guest_Dasha_* @ 6:05:2006, 13:56 )</span><!--QuoteEBegin-->Спасибо за ответ. Я уже решила эту задачу. А так я тоже пробовала,но у меня почему-то не получилось.
    [snapback]35131" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    Гм. А если не секрет, как решили?
    Дело в том, что у меня тоже не запустилось (скорее всего версии SDK разные).
     
  5. Guest_Dasha_*

    Guest_Dasha_* Гость

    Мне посоветовали сделать так,очень просто, а главное все работает:

    import java.io.FileInputStream;
    import java.io.InputStream;

    import sun.audio.AudioPlayer;
    import sun.audio.AudioStream;

    public class PlaySound
    {
    public static void main(String[] arguments)
    {
    final String AudioFileLocation = "путь к файлу(но это необязательно,если файл находиться в тойже папке,где и сама программа";
    PlaySound(AudioFileLocation);
    }

    public static void PlaySound(String file)
    {
    try
    {
    InputStream stream = new FileInputStream(file);
    AudioPlayer.player.start(new AudioStream(stream));
    }
    catch(Exception exception)
    { }
    }
    }
    А с классом AudioClip все как-то запутано и у меня всевремя какие-то ошибки выдаються.....
     
  6. Guest

    Guest Гость

    <!--QuoteBegin-Guest_Dasha_*+7:05:2006, 10:50 -->
    <span class="vbquote">(Guest_Dasha_* @ 7:05:2006, 10:50 )</span><!--QuoteEBegin-->Мне посоветовали сделать так,очень просто, а главное все работает:

    import java.io.FileInputStream;
    import java.io.InputStream;

    import sun.audio.AudioPlayer;
    import sun.audio.AudioStream;

    public class PlaySound
    {
    public static void main(String[] arguments)
    {
    final String AudioFileLocation = "путь к файлу(но это необязательно,если файл находиться в тойже папке,где и сама программа";
    PlaySound(AudioFileLocation);
    }

    public static void PlaySound(String file)
    {
    try
    {
    InputStream stream = new FileInputStream(file);
    AudioPlayer.player.start(new AudioStream(stream));
    }
    catch(Exception exception)
    { }
    }
    }
    А с классом AudioClip все как-то запутано и у меня всевремя какие-то ошибки выдаються.....
    [snapback]35162" rel="nofollow" target="_blank[/snapback]​
    [/quote]


    Низкий поклон за ответ, действительно работает.
    ...только привередливый к форматам этот player. Записанные мною с микрофона файлы он играть отказался: вместо new AudioStream вылетает Exception. Но, например, стандартные Виндозовские звуки играет без проблем...
     
  7. taxi

    taxi Гость

    Вот самый прочтой тэг <BGSOUND LOOP="1" SRC="file.mid"</BGSOUND>
    а сылку и кнопки я думаю сами слепите :(
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей