问题标签 [jlayer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1778 浏览

java - 使用 javazoom 播放器的问题

我正在尝试使用 JLayer 类播放器播放 mp3 文件。启动线程后, myPlayer.play() 您可以听到歌曲开头的几百毫秒,然后播放器中断,我收到以下错误消息:

我在互联网上搜索了解决方案,并且我读到这个错误可能是由于某些 .mp3 文件的问题而发生的,但是 .wav 或 .wma 文件都没有被接受。有谁知道我怎样才能让播放器工作?提前致谢

0 投票
1 回答
487 浏览

java - 在 JProgressBar 上使用 JLayer 创建自定义 JComponent

我正在尝试创建一个使用 JLayer 类的自定义 JProgressBar ,以便可以根据情况对它进行不同的着色,例如这个解决方案。问题是我想将它包装为某种 JComponent,因为它使它更易于管理。我会将其公开为自定义的 JLayer,但该类是密封的,所以什么也不做。

我尝试将其设为 JComponent,但屏幕上没有绘制任何内容(可能是因为我不知道如何制作包含其中其他组件的自定义 JComponent?)。我尝试了一个 JFrame,它可以工作,但大小都是错误的,可能是因为进度条使用的是我制作的 JFrame 的布局管理器,而不是包含 JFrame 的布局管理器。我已经尝试过绘制的 JProgressBar,但是我无法返回 JLayer 并保留正确的层次结构,而无需在构造函数之后调用额外的方法,这看起来并不优雅。

这是我的示例代码,主要基于我上面链接的问题中的代码:

有人知道我要去哪里错了吗?谢谢!

编辑:我稍微精简了示例并对其进行了修改以更好地表达我的问题。对困惑感到抱歉。

0 投票
2 回答
2716 浏览

android - 在android中使用JLayer和Audiotrack播放由lame mp3压缩的mp3数据

我已经按照这个示例将来自 AudioRecord 的原始音频数据转换为 mp3,并且它成功地发生了,如果我将此数据存储在 mp3 文件的文件中并使用音乐播放器播放,那么它是可以听到的。

现在我的问题是不是将 mp3 数据存储到我需要使用 AudioTrack 播放它的文件中,数据来自 Red5 媒体服务器作为实时流,但问题是 AudioTrack 只能播放 PCM 数据,所以我只能听到噪音从我的数据。

现在我正在使用JLayer来完成我的要求任务。

我的代码如下。

并且这个 mp3buffer 数据通过 Red5 流发送给其他用户。

其他用户收到的数据是流的形式,所以播放它的代码是

但是我的代码在 2-3 秒后冻结在 bitstream.readFrame 处,在此之前也没有发出声音。

任何猜测会是什么问题?任何建议表示赞赏。

注意:我不需要存储 mp3 数据,所以我不能使用 MediaPlayer,因为它需要一个文件或文件描述符。

0 投票
1 回答
1214 浏览

java - 通过 JLayer 和 LayerUI 缩放 JLayeredPane

在这个 Stack Overflow 问题上有人建议,在 Swing 应用程序中实现缩放的最佳方法是通过JLayerJava 7 提供的装饰器。

我一直在关注Oracle 教程,并认为最好的方法是创建自己的ZoomUI扩展LayerUI. 到目前为止,我的想法是这个类将有一个zoom在绘制实际组件之前应用的成员变量。

然后稍后我可以使用同一个类来捕获鼠标事件并将它们分派到它们的未缩放坐标。

第一步我遇到了一些麻烦,无法理解为什么g2.scale(zoom, zoom)调用在下面的 SSCCE 中没有效果。

在此示例中,我希望放大/缩小按钮在单击时会变大,并且在放大以正确响应鼠标事件时。无需单击他们曾经居住的位置即可触发事件。

可悲的是,我什至无法通过更改评论行来让它们在点击之前进行缩放,所以我非常感谢一些帮助!

0 投票
1 回答
1308 浏览

android - 将 AudioTrack 与 JLayer 解码器一起使用

我正在使用 JLayer 库来解码 MP3 文件(我需要访问音频样本)和 AudioTrack 对象来播放它的 Android 应用程序。我有这样的事情:

此代码放置在我创建为 AsyncTask 的自定义播放器中。一般来说,我的解码和写入方法工作正常,因为我听到了声音文件。问题是,我的声音每 5 秒(timeStep = 5000 毫秒)有规律地跳动。正如我看到的 audioTrack.write(...) 阻止了我的异步任务,因此每次 Steps 之后的短暂暂停是由于等待解码方法的结果引起的。

您有什么建议可以正确传递 outSignalBuffer 以从解码器编写方法以获得流畅的 audioTrack 播放器吗?

0 投票
0 回答
2339 浏览

android - 用于 mp3 流和 AudioTrack 播放的 JLayer 解码器

在尝试了很多东西从服务器播放和 mp3 之后(由于延迟问题不使用 MediaPlayer),我得到了一段几乎可以工作的代码。

我使用异步任务从服务器获取流,然后将其提供给 jLayer 的解码器以将其转换为 PCM 数据。然后我将它提供给 AudioTrack 实例。

现在我听到很多口吃,但我非常积极,因为至少我听到了一些东西。

有人可以帮我解决口吃问题或指出如何解决口吃问题吗?

非常感激!

0 投票
0 回答
54 浏览

java - 在 OSX 上加载 MP3 时出现奇怪的错误

我正在使用 tritonus、mp3spi 和 jl1.0.1 。当我尝试在 Eclipse (OSX) 中调试或运行时,它会抛出一个NullPointerException. 但在 Windows 上它工作得很好。有什么建议吗?我很想让这个工作来开发跨平台。

让它奇怪的部分是它只在 Mac 上。

点唱机:

错误在 if 语句之后

0 投票
1 回答
288 浏览

java - 带有圆形加载条的 Jpanel 中的 Jlayer

这是我使用 Jlayer 制作圆形加载栏的示例,但现在图层在执行 btnLoad.addActionListener() 后开始和停止,并在确定的计时器(4000)一段时间后停止,所以我的问题是我需要它在什么时候开始我点击按钮加载并在完成文件加载后停止!

0 投票
1 回答
3179 浏览

java - 如何使用 JLayer 将歌词突出显示为 mp3 文件播放(如卡拉 OK)

我使用 JLayer 在 Java 中创建了一个媒体播放器,它接受 mp3 文件。一旦用户播放该歌曲,我也会显示特定歌曲的歌词,但现在我想以某种方式突出显示或更改歌曲中听到的歌词的文本颜色(如卡拉 OK)。我只需要为一首歌曲执行此操作 - 我将在我的程序中实现歌词。我已经搜索过如何做到这一点,但似乎无法准确找到我正在寻找的东西。下面我将代码添加到播放音乐文件的类中。先谢谢了!

}

0 投票
1 回答
68 浏览

java - 放置在循环中时,JLayer Player 会覆盖 SWT 小部件的刷新

我正在尝试制作一个应用程序来检索图像和 .mp3 文件,并在音频完成后从一个图像转换到下一个图像。我如何在这些图像之间转换的底层框架有点复杂,但我设法在 SWT 中获得了一个动作,它成功地使我能够手动从一个转换到下一个。但是,当我尝试将其自动化时出现了问题。当放入循环时,我的 playAudio() 方法在我在 displayShow() 方法中进行的所有调用都已解决之前开始,这会导致一个空白窗口,尽管音频仍在播放。

这是我要开始显示的操作的运行方法:

这是playAudio()。我可以毫无意外地播放音频:

这里是 displayShow():

show.showSlide 返回一个父级为容器的合成,它是最高父级合成的直接子级。在新创建的合成中,将图像添加到标签,并将标签的父级分配给合成。我意识到 displayShow() 是否在单独的线程中似乎无关紧要;这只是我尝试的最后一件事。

导致刷新不执行的不仅仅是循环的添加。我可以让手动转换工作的唯一方法是从 playAudio() 方法中删除 CountDownLatch。如果我要删除这个闩锁,将这两种方法封装在一个循环中的唯一方法是嵌入 while 循环,这似乎占用了相当多的 CPU 并且仍然不能解决我的问题。我错过了什么吗?