gpt4 book ai didi

java - JMF:无法在未实现的 Controller 上设置媒体时间

转载 作者:行者123 更新时间:2023-12-01 15:20:41 25 4
gpt4 key购买 nike

我尝试使用 JMF 在每次按下按钮时播放声音。

这就是我必须构建的媒体播放器:

MediaPlayer mp = new javax.media.bean.playerbean.MediaPlayer();
mp.setMediaLocation("file:///D:/fall.wav");
mp.setPlaybackLoop(false);

并且,要播放一次声音,我会这样做

mp.start();
mp.setMediaTime(new Time(0));
mp.stop();

第一次播放声音时,我得到一个

javax.media.NotRealizedError: Cannot set media time on a unrealized controller 

和一个

Exception in thread AWT-EventQueue-0" javax.media.NotRealizedError: 
Cannot set media time on a unrealized controller

在 setMediaTime 行上。当我以后按下发出声音的按钮时,这种情况不会发生,只会在第一次发生。如果我更改构造函数并添加

mp.realize();

最后,它不会抛出这些错误,但它也不会第一次播放声音。

我该如何解决这个问题?

最佳答案

mp.start() 是异步的。因此,当您调用 mp.setMediaTime(new Time(0)); 在调用 start() 后,播放器尚未实现。 您可以添加一个 ControllerListener 并监听其事件。获取RealizedEvent后,然后设置媒体时间。最好首先调用 mp.realize() 并在获取事件后设置媒体时间,然后调用 start()

关于java - JMF:无法在未实现的 Controller 上设置媒体时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10965198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com