如何使用 JavaZOOM JLayer 库播放/暂停 mp3 文件?

2024-03-13

如何向以下代码添加播放/暂停按钮?

import javazoom.jl.player.Player;

try{
    FileInputStream fis = new FileInputStream("mysong.mp3");
    Player playMP3 = new Player(fis);
    playMP3.play();
}
catch(Exception exc){
    exc.printStackTrace();
    System.out.println("Failed to play the file.");
}

您需要使用AdvancedPlayer http://www.javazoom.net/javalayer/docs/docs1.0/javazoom/jl/player/advanced/AdvancedPlayer.html类而不仅仅是Player,因为比较简单的不能真正开始播放中间的文件。

你需要添加一个PlaybackListener http://www.javazoom.net/javalayer/docs/docs1.0/javazoom/jl/player/advanced/PlaybackListener.html并聆听stop()方法。然后您就可以从中断的那一刻重新开始。

private int pausedOnFrame = 0;

AdvancedPlayer player = new AdvancedPlayer(fis);
player.setPlayBackListener(new PlaybackListener() {
    @Override
    public void playbackFinished(PlaybackEvent event) {
        pausedOnFrame = event.getFrame();
    }
});
player.play();
// or player.play(pausedOnFrame, Integer.MAX_VALUE);

这将记住暂停播放的帧(如果暂停)。

现在,当暂停后再次按下“播放”时,您将检查是否pausedOnFrame是 0 到文件中帧数之间的数字并调用play(int begin, int end) http://www.javazoom.net/javalayer/docs/docs1.0/javazoom/jl/player/advanced/AdvancedPlayer.html#play%28int,%20int%29.

请注意,在执行此操作之前,您应该知道文件中的帧数。如果你不这样做,你可以尝试通过这个技巧播放所有帧:

player.play(pausedOnFrame, Integer.MAX_VALUE);

也就是说,该 API 对您的情况似乎没有多大帮助,但除了切换到不同的库之外,这是您能做的最好的事情。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 JavaZOOM JLayer 库播放/暂停 mp3 文件? 的相关文章

随机推荐

  • 图像在幻灯片上旋转

    我正在使用引导轮播插件来幻灯片显示照片 问题是有些图像旋转了 90 度 有什么办法可以解决这个问题吗 这是 HTML div class container div class row div class col md 8 col md o
  • 如何检查任何类型的变量是否是数组

    我尝试将 swift 协议数组转换为任何数组 但失败了 protocol SomeProtocol class class SomeClass NSObject SomeProtocol let protocolArray SomeProt
  • 如何为“插入”表单中的字段传递默认值?

    如何为 插入 表单中的字段传递默认值 我正在使用 Meteor 的软件包 Autoform Collections2 和 Simple Schema 我的流程是 用户在页面列表中选择某个值 然后 打开 插入 我希望使用用户在上一步中选择的值
  • 如何用c++语言中的tensorflow.so和c_api.h加载图?

    我找不到任何有关如何加载图表的示例tensorflow so and c api h在C 中 我读了c api h 但是 那ReadBinaryProto功能不在其中 如何在没有ReadBinaryProto功能 如果您使用 C 您可能需要
  • 为派生类专门化 std::hash 在 gcc 中有效,而不是 clang

    我正在努力专攻std hash对于派生类 迄今为止最好的方法是基于这个答案 https stackoverflow com a 31213703 620382 include
  • scala ArrayBuffer 删除带有谓词的所有元素

    Scala 在过滤不可变序列方面非常优雅 var l List 1 2 3 4 5 6 l l filter 2 1 但是如何使用像 ArrayBuffer 这样的可变集合来做到这一点呢 我发现的只是删除单个元素或切片 或者从另一个序列中删
  • 如何在弹出菜单中使用单选按钮?

    我正在尝试创建一个包含可选单选按钮的弹出菜单 以便更改视图类型 例如图库 卡片 滑动 网格 列表等 我遇到的问题是 PopupMenu 有自己的用于选择值的回调 Radio 和 RadioListTile 也是如此 忽略RadioListT
  • 自动将调试器附加到 Eclipse 中的新 Java 子进程

    我有一个 Java 进程 它使用 ProcessBuilder 等生成一个新的 JVM 在调试时 是否可以让 Eclipse 将调试器附加到新的子进程 更好的是 是否有任何插件在注意到新的子进程时会自动执行此操作 我被告知 虽然还没见过 V
  • 哈希表真的可以是 O(1) 吗?

    哈希表可以实现 O 1 似乎是常识 但这对我来说从来没有意义 有人可以解释一下吗 我想到了以下两种情况 A 该值是一个小于哈希表大小的 int 因此 该值是它自己的哈希值 因此不存在哈希表 但即使有 也会是 O 1 并且效率仍然很低 B 您
  • 在 Podfile 中声明架构

    有没有办法将架构包含在 CocoaPods 中Podfile 我正在尝试为 32 位和 64 位构建我的应用程序 但是当我切换到Standard architectures including 64 bit 在我的项目的构建设置中 它抱怨我
  • css:覆盖活动链接样式?

    我的 css 中有以下选择器 a active position relative top 1px 因此 每个链接在按下时都会有这个小按钮效果 我怎样才能防止特定链接的这种行为 例如我的网站上有一个 返回顶部 链接 不应该有这种行为 a b
  • 标准 Treeview 的 C# 替代品?

    我想找到提供的 System Windows Form Treeview 的替代品 我需要以下改进 多项选择项目 更好的性能 标准小部件的性能简直太糟糕了 特别是在添加一长串项目时 在树视图小部件内拖放项目时滚动 我可能会忘记一些 但这些非
  • s3 安装在容器内。如何将其暴露给主机?

    我一直在考虑是否有一个容器可以安装 s3 桶并将其暴露在外面 I used https github com FindHotel aws s3 mount https github com FindHotel aws s3 mount将 s
  • 拖放文本视图

    我必须拖动 但无法完美拖动它 问题是 1 我必须拖动两到三次才能将其带到所需的位置 因此 textview 不能顺利跟随手指移动 2 如果我向上移动文本视图 它只会向下移动 我提供了触摸事件上textview的代码 请帮忙 提前致谢 fin
  • 如何使用 Unix 套接字对来通信 Rust 和 Ruby 进程

    我正在尝试使用 Unix 套接字对将 Rust 进程与 Ruby 子进程进行通信 我只使用 Ruby 尝试过同样的操作 它可以工作 但我似乎无法让它与 Rust 一起工作 我尝试将 rust socket 文件描述符传递给Ruby脚本 将
  • python 中的聚合时间序列

    我们如何按小时或分钟粒度聚合时间序列 如果我有如下所示的时间序列 那么我希望这些值按小时聚合 pandas 是否支持它 或者是否有一种在 python 中实现它的好方法 timestamp value 2012 04 30T22 25 31
  • 应用内购买产品 ID 是否必须以反向 DNS 开头?

    应用内购买产品 ID 是否必须以反向 DNS 开头 例如com mycompany My Awesome Game Level Pack 1或者它可以只是独立的吗Level Pack 1 产品 ID 可以是您想要的任何内容 但建议您遵循反向
  • 使用 rma.glmm 计算估计值:当 2 个估计值相同时出错

    我正在使用 rma glmm 来计算两项不同研究的元比例 例如 6 个月时出现 xi 和未出现 xii 不良事件的个体比例 library metafor 6 months study c 1 2 ni c 41 19 xi c 26 14
  • 浏览器后退按钮未更新页面

    我使用 jquery 单击事件在井号标记后设置 URL URL 设置正确 但当我使用浏览器后退按钮时 它不会将我带到上一页 在我的点击事件之前 URL 如下所示 http example com menu php home 我的点击事件如下
  • 如何使用 JavaZOOM JLayer 库播放/暂停 mp3 文件?

    如何向以下代码添加播放 暂停按钮 import javazoom jl player Player try FileInputStream fis new FileInputStream mysong mp3 Player playMP3