问题标签 [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 投票
0 回答
1146 浏览

java - Jlayer Mp3播放器

我使用 JLayer 播放 mp3 文件。

我有一系列文件,我可以播放歌曲,转到下一首,但我不知道如何在第一次停止时转到下一首歌曲。

我有五种方法

当歌曲停止时,我得到playbackEnded但我无法处理下一首歌。

这是我的代码

我想在playNext()什么时候调用playbackFinishedMyFrame().playNext()不起作用

0 投票
1 回答
2460 浏览

java - JLayer 暂停和恢复

我刚开始使用 Jlayer 库播放 MP3。它工作得很好,我可以播放这首歌。我唯一的问题是实现暂停和恢复方法。由于我对多线程的了解有限,我虽然让我播放 MP3 的线程等待,声音会停止,为了恢复歌曲,我只需要通知线程。这是我得到的:

然而,出于某种原因,wait() 没有做任何事情,程序甚至没有到达 notify()。为什么会这样?

我已经阅读了有关此问题的先前 SO 问题,但我无法使它们起作用。我也有兴趣了解为什么这段代码不起作用,以便进一步了解多线程。谢谢!

0 投票
1 回答
838 浏览

java - 冲突的 Jar 方法

我一直在尝试用 Java 制作我的第一个 GUI 音乐播放器。到目前为止,我已经能够使用 Javasound 和 MP3SPI 播放 MP3。现在,我想支持 .m4a 歌曲,而我研究过的最好的库是 JAAD。我下载了它,将它添加到我的项目中,当我尝试播放一首 .m4a 歌曲时它运行良好。添加 JAAD 库后尝试播放 .mp3 时会出现问题。我播放歌曲的代码是:

(playSong() 只需读取流并将字节写入 SourceDataLine)

添加 JAAD 库后尝试播放 .mp3 时出现的错误如下:

据我了解,Javasound 和 JAAD 的 getAudioInputStream 似乎存在冲突。我该如何解决这个冲突?

0 投票
2 回答
3716 浏览

java - 多个 JPanel 完全重叠

我正在创建一个程序,我可以在其中绘制地图并向其添加不同的道路等。我计划在一个 jpanel 上添加地图地形,在另一个 jpanel 上添加道路等,彼此叠加。但我不能让他们工作。我不知道如何将多个 jpanel 完全叠加在一起并让它们都能够绘制。

0 投票
1 回答
454 浏览

java - 堆叠 JLayer 类(到 JPanel)

我希望将实例堆叠JLayers在一起以获得分层效果,但他们似乎不想那样工作。我想用多个类实现的多个效果来装饰一个。JPanelLayerUI<JPanel>

例如

其中参数 tonew JLayer是同一个JPanel实例,但LayerUI实例做不同的事情。

似乎最后一个添加的胜利。他们都直接绘制到paint方法中的上下文,也许就是这样..?

有关Oracles 的教程,请参见此处

0 投票
1 回答
1035 浏览

java - 为什么缓冲区大小会影响音频数据?

我正在使用javax.sound.sampledJLayer播放MP3文件。我正在尝试分析音频输入流以确定歌曲何时开始以及何时结束(基于 MP3 开头和结尾的音频电平)。一首 4 分钟的歌曲可能只有 3 分 55 秒的实际音乐,而其余的都是无声的,这就是我确定这一点的原因。

我想我可以通过查找流中的第一个和最后一个非零字节来确定此信息。

问题:问题是当我调整缓冲区大小时,第一个非零字节的位置发生了变化。为什么会这样,无论缓冲区大小如何,它都不应该保持不变吗?

例如,在缓冲区大小为 16 时,startFrame 与第 17 个字节相关。缓冲区大小为 64 时,startFrame 与第 65 个字节相关。

这是代码:

我想我误解了音频输入流和音频的一般工作原理。

0 投票
1 回答
8514 浏览

java - 将 mp3 解码为 pcm,并在 Google Android 中播放音轨

首先,如果不使用函数decode_path,我可以用我的代码播放 .wav 文件,我使用它Jlayer和音轨播放歌曲效果很好。

其次,如果我使用函数decode_path它可以将mp3解码为pcm文件,并传递byte[]给函数PlayAudioTrack,让它播放。

问题是,我不知道我的代码哪里错了,我用的是320Kbps,44.1Khz立体声,Layer3 mp3,但是AudioTrack播放有噪音但是没有音乐~!!!!

任何人都可以吗????

我的代码

0 投票
1 回答
1411 浏览

android - 在音轨中播放 PCm 数据

当我尝试通过音轨播放 pcm 数据时,我使用 jLayer lib 解码了 mp3,这会产生很多音频失真。

我的解码器代码:

0 投票
2 回答
574 浏览

java - JLayer 总是抛出 ArrayIndexOutOfBounds 异常

我正在使用 JLayer 解码 MP3,并将其存储为 PCM 数据。然而,无论我使用什么 MP3 文件,我总是得到一个索引为 443 的 ArrayIndexOutOfBoudnsException。我听说这只发生在某些 MP3 上,但它在我播放的每个 MP3 的每一帧上都会发生这是我的代码:

并使用以下代码调用该方法:

堆栈跟踪:

0 投票
0 回答
175 浏览

java - 从 [1,0] 的地图中用透明覆盖对图像区域进行着色的有效方法

我避免了标题中的位图一词,因为在这种情况下,位图通常(?)指的是来自底层图像的位图。

我有一个图像被分割成许多不同的区域。对于每个区域,我都有一张由 1 和 0 组成的地图(位图),其中 1 代表区域内,零代表区域外。并非图像的每个部分都被一个区域覆盖,并且这些区域可能会重叠。图像尺寸为 (480x360)。

我想做的是当你用鼠标悬停该区域时用透明的红色覆盖图像。我的问题是我当前的方法非常慢,覆盖出现之前需要一两秒钟。

我目前的方法是在我的 ImagePanel 上使用 JLayer(绘制 BufferedImage 的 JPanel 的扩展)。然后我的 LayerUI 实例在鼠标移动时绘制叠加层:

那么,我怎样才能提高效率呢?我愿意接受使用 JLayer 以外的其他方式的建议。我可以通过某种摆动方法以某种“魔术”方式使用我的位图吗?我可以将它与 BufferedImage 中的底层位图混合吗?消除透明度是唯一能帮助我的事情吗?(这是我想保留的东西)

另外两个与问题不一定相关但我尚未解决的问题:

  • 每次鼠标移动时都会重新绘制叠加层。这似乎是一种资源浪费。
  • 当区域重叠时,如何选择绘制哪一个?