Java 选择ListPreference时播放声音

Java 选择ListPreference时播放声音,java,android,audio,listpreference,Java,Android,Audio,Listpreference,我设置了一个ListPreference,它有四个选项。我只是想知道在选择其中一个选项后是否可以播放声音?我想在从ListPreference中选择铃声后制作一个声音,并在选择铃声后播放声音样本。我不想在从ListPreference中选择选项后单击按钮播放声音。我希望它在首选项屏幕打开时播放,在选择之后立即播放。也许您可以添加一个侦听器,然后在回调中从类路径读取声音文件来播放它。我快速拼凑了一个示例(使用Java7)来展示播放音频文件的示例,希望它能帮助: import java.io.IOE

我设置了一个ListPreference,它有四个选项。我只是想知道在选择其中一个选项后是否可以播放声音?我想在从ListPreference中选择铃声后制作一个声音,并在选择铃声后播放声音样本。我不想在从ListPreference中选择选项后单击按钮播放声音。我希望它在首选项屏幕打开时播放,在选择之后立即播放。

也许您可以添加一个侦听器,然后在回调中从类路径读取声音文件来播放它。我快速拼凑了一个示例(使用Java7)来展示播放音频文件的示例,希望它能帮助:

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;

public class Main {

    public static void main(String args[]) {
        Clip clip;
        try {
            clip = AudioSystem.getClip();
            AudioInputStream inputStream = AudioSystem.getAudioInputStream(
                    Main.class.getResourceAsStream("Morse.aiff"));
            clip.open(inputStream);
            clip.start();
            // optionally, sleep the thread for the duration of the audio clip, 
            // or else you may not hear it
            Thread.sleep(5000); 
        } catch (LineUnavailableException | UnsupportedAudioFileException | IOException | InterruptedException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}