我想创建2个JMenuItem
可以启动和停止背景音频的设备。
这是我的代码:
public class MainClass extends JFrame
{
private AudioInputStream audioInputStream;
private Clip clip;
public MainClass(String title)
{
try
{
audioInputStream = AudioSystem.getAudioInputStream(new File("Background.wav"));
clip = AudioSystem.getClip();
clip.loop(Clip.LOOP_CONTINUOUSLY);
clip.open(audioInputStream);
}
catch(Exception e)
{
System.out.println("Error with playing sound.");
e.printStackTrace();
}
}
public void startSound()
{
clip3.start();
settingSubMenuItem1.setEnabled(false);
settingSubMenuItem2.setEnabled(true);
}
public void stopSound()
{
clip3.stop();
settingSubMenuItem1.setEnabled(true);
settingSubMenuItem2.setEnabled(false);
}
private class MenuItemListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == settingSubMenuItem1)
{
startSound();
}
if(e.getSource() == settingSubMenuItem2)
{
stopSound();
}
}
}
}
当我单击时settingSubMenuItem1
,可以正常工作,可以播放音频。
但是,当我单击时settingSubMenuItem2
,会出现错误,如果再次单击settingSubMenuItem1
,将不会再有声音。
这是错误:
Error with playing sound.
java.lang.IllegalStateException: Clip is already open with format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian and frame lengh of 7658
我的程序有什么错误?
此SSCCE在这里是“无效结果”,因为音频无例外地重新启动(尝试至少3次)。
import java.net.URL;
import java.awt.event.*;
import javax.swing.*;
import javax.sound.sampled.*;
public class RestartableLoopSound {
public static void main(String[] args) throws Exception {
URL url = new URL(
"http://pscode.org/media/leftright.wav");
final Clip clip = AudioSystem.getClip();
AudioInputStream ais = AudioSystem.
getAudioInputStream( url );
clip.open(ais);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
final JToggleButton b = new JToggleButton("Loop");
ActionListener listener = new ActionListener() {
public void actionPerformed(ActionEvent ae) {
if (b.isSelected()) {
// loop continuously
clip.loop(Clip.LOOP_CONTINUOUSLY);
} else {
clip.stop();
}
}
};
b.addActionListener(listener);
JOptionPane.showMessageDialog(null, b);
}
});
}
}
我试图在电池完全充电时播放铃声。为了实现这一点,我提供了服务。当我第一次执行我的代码时,它工作了,第二次没有,我在日志中不断地得到这些错误。 根据logcat,错误在
安装Flutter包时遇到错误= 我使用的是颤振4.2.2; 错误: kotlin. Unit类使用不兼容的静态编程语言版本编译。其元数据的二进制版本为1.5.1,预期版本为1.1.15。 在连续3天试图找到解决方案后,我现在遇到了这个错误。 错误2: Android Studio在运行Gradle时使用以下JDK位置://C:\Program Files\Android\Android Stud
但是,我得到以下错误: 现在我注意到它在/home/graffixnyc/android-studio/gradle/m2repository/com/google/gms/play-services/11.0.4/play-services-11.0.4.pom中查找 但是,我的位置是:/home/graffixnyc/android-sdk/extras/google/m2repository
硬件和软件:Raspberry PI4,IP camera,Raspbian Buster,Gstreamer 1.14.1(来自存储库)。覆盆子和摄像机都在本地网络上。 null 其他信息: > 我的相机在图像上方显示时间(时、分、秒)。回放总是在秒的某个值停止。相机重启时,这个数值随机变化--17、32、55……改变相机中的时间并不能解决问题。 Raspberry上的VLC播放器从该相机播放流
null null 在我的设备上,它显示了缩略图,但当我按播放时,它显示“发生错误,请稍后再试”。 使用Xcode7和iOS9的Im。
我正在开发一个音频播放器,它可以在后台播放音频文件。我的问题是,当录像机或视频播放器启动时,我需要暂停音频播放器。 有什么方法可以处理这个任务吗?例如,我有来处理这些调用。当我接到呼叫或wnat呼叫时,我们可以使用呼叫状态暂停播放器。我想为录像机或视频播放器以及相同的场景。当视频/录制开始时,我需要暂停音频播放器。