关键是我使用jLayer的实现不起作用:当我执行play-pause-resume时,音频被暂停,但随后从文件中的随机点恢复。
public class MPlayer{
AdvancedPlayer player;
private static int pausedOnFrame =0;
private byte[] decrypted = null;
private long audioLength;
private AudioInputStream stream;
private InputStream bytesToStream(byte[] in) {
InputStream is = new ByteArrayInputStream(in);
return is;
}
public MPlayer(String fname) {
/* here file is encrypted to variable byte[] decrypted and then: */
InputStream is = bytesToStream(decrypted);
stream = AudioSystem.getAudioInputStream(is);
audioLength = stream.getFrameLength();
player = new AdvancedPlayer(stream);
player.setPlayBackListener(new PlaybackListener() {
@Override
public void playbackFinished(PlaybackEvent event) {
System.err.println(event.getFrame());
pausedOnFrame = event.getFrame();
}
}
}
public void play() throws Exception {
Thread th = new Thread() {
public void run() {
player.play(MPlayer.pausedOnFrame, Integer.MAX_VALUE);
}
};
th.start();
}
public void fastforward() {
pausemusic();
long nextFrame = (long) (pausedOnFrame+0.02*audioLength);
if (nextFrame < audioLength)
play();
}
public void rewind() {
pausemusic();
long nextFrame = (long) (pausedOnFrame-0.02*audioLength);
if (nextFrame > 0)
play();
}
}
public void pausemusic() throws LineUnavailableException {
player.stop();
}
public void stopmusic() throws LineUnavailableException {
player.stop();
pausedOnFrame = 0;
}
}
我该怎么修好它?
您似乎必须在pause方法上调用stop,而不给它一个位置。
public void pausemusic() throws LineUnavailableException {
player.stop();
}
public void stopmusic() throws LineUnavailableException {
player.stop();
pausedOnFrame = 0;
}
我不熟悉您的代码是如何工作的,但是如果'stopmusic'方法通过'paused onframe=0'将歌曲重置为0,那么为什么不在播放过程中保留一个计数器,以便创建一个知道在哪里定位的pause方法呢?
简而言之,你为什么不追踪这首歌在哪里?
我正在开发一个音频播放器,它可以在后台播放音频文件。我的问题是,当录像机或视频播放器启动时,我需要暂停音频播放器。 有什么方法可以处理这个任务吗?例如,我有来处理这些调用。当我接到呼叫或wnat呼叫时,我们可以使用呼叫状态暂停播放器。我想为录像机或视频播放器以及相同的场景。当视频/录制开始时,我需要暂停音频播放器。
问题内容: 如何在以下代码中添加“播放/暂停”按钮? 问题答案: 您需要使用该类而不是just类,因为更简单的类不能真正开始在中间播放文件。 您需要添加一个并监听该方法。然后,您可以从停下来的那一刻起重新开始。 这将记住播放的帧已暂停(如果已暂停)。 现在,在暂停后再次按Play键时,您将检查文件中的数字是否介于0和帧数之间,然后调用。 请注意,在执行此操作之前,您应该知道文件中的帧数。如果没有,
ap.pauseBackgroundAudio(CALLBACK) 暂停播放音乐。 代码示例 <script src="https://gw.alipayobjects.com/as/g/h5-lib/alipayjsapi/3.1.1/alipayjsapi.inc.min.js"></script> <style>.output{ display:block; max-width: 100%
我正在使用ExoPlayer播放视频的应用程序。出于某种原因,当我试图暂停时,视频播放器没有显示播放/暂停图标。我只为播放/暂停做了一个自定义布局,并将其设置在PlayerView上。使用或播放/暂停视频。到处都找不到解决办法,好像我错过了什么,但又不知道是什么。
在webview iframe和webview上播放的视频设置在回收卡视图上。许多视频都在他们的recyclerview上。 我想在用户开始滚动回收器时暂停播放视频,并在用户播放另一个视频时暂停播放视频。 查看代码 我想用这个: 请帮我解决这个问题。任何帮助都将不胜感激。谢谢!