Сделать скриншот аудио потока - PullRequest
0 голосов
/ 24 января 2011

Хорошо, мне нужно приложение командной строки, которое позволяет вам сделать снимок экрана аудиопотока файла.

Например, его следует запустить следующим образом:

app.exe "C: /artist-title.mp3" "C: /mp3Stream.jpg"
app.exe "C: /artist-title.wav" "C: /wavStream.jpg"

Itнужно только уметь захватывать mp3-потоки, другие потоки являются бонусом.

Предпочтительно все аудиоканалы перечислены на изображении, но если все каналы объединить в один монопоток, это будет работать так же хорошо для меня.

Итак, есть ли такое приложение?Чтобы я не изобрел заново колесо.

Если нет, у кого-нибудь есть советы, как мне самому написать такое приложение?Желательно на Яве.Я неплохо справляюсь с программированием, но я не очень разбираюсь в форматах MP3 / WAV.

Зачем мне это нужно ...?Что ж, гораздо веселее связать файл онлайн с каким-то предварительным изображением, кроме ссылки.Он дает вам подсказку о звуковом персонаже до того, как вы его прослушаете (он громкий? Выглядит ли он как "битовая музыка"? Есть ли в нем какие-либо части, которые более тихие, чем другие? И т. Д.).

Ответы [ 2 ]

0 голосов
/ 24 января 2011

Также взгляните на http://www.jsresources.org/ В нем есть довольно хороший раздел часто задаваемых вопросов обо всем аудио в Java и некоторых примерах приложений.

0 голосов
/ 24 января 2011

Не берите в голову, я написал свое собственное небольшое приложение на Java.

Когда я нашёл это превосходное руководство, было совсем немного:
http://codeidol.com/java/swing/Audio/Build-an-Audio-Waveform-Display/

Хотя вы можете 'Не загружая исходный код с этой страницы (насколько я могу судить, хотя он дает понять, что вы должны это делать), он действительно предоставляет несколько очень полезных ключевых строк кода, которые позволяют легко составить загадку приложения.

Добавление немного помощи (легкий материал).Таким образом вы можете получить графический объект:

BufferedImage img = new BufferedImage (500, 100, BufferedImage.TYPE_INT_RGB);
Graphics2D gfx = (Graphics2D) img.getGraphics ();

И как только вы нарисуете все, что вам нужно, на GFX, вы можете сохранить его на диск всего одной строкой:

ImageIO.write (img, "jpg", new File ("waveform.png"));

Трудно заставить его выглядеть очень хорошо.Не выглядит так хорошо, как, например, Audacity.Думаю, они потратили на это больше времени, чем несколько часов.

Самая большая боль в этом заключается в том, что Java не поддерживает импорт MP3.Они действительно должны обойти это.

Так что, чтобы получить форму волны MP3, я сначала конвертирую их в WAV, используя "javazoom.jl.decoder.Decoder.java", это на их сайте.Очень прост в использовании, просто укажите путь ввода и путь вывода, и все готово.

javazoom dot net (не удалось опубликовать более одной «гиперссылки» на этом сайте)

Большойминусом этого является, конечно, необходимость создания огромного WAV-файла, и горе вам, если MP3 окажется 15 минут или около того ... WAV будет более 100 МБ (может быть, даже 200 МБ, неузнал, так как я получил ошибку Java «out-of-memory-error», хотя я дал VM 512mb).

Поддержка MP3 в Java сегодня, пожалуйста.Угадай, по какой причине их нет, из-за проблем с авторским правом.Авторское право действительно замедляет человека.

...