3 / 3 / 0
Регистрация: 31.01.2010
Сообщений: 36
|
|
1 | |
В существующий mp3 файл каждые 20 секунд добавлять звук из генератора.31.01.2010, 22:32. Показов 4127. Ответов 14
Метки нет (Все метки)
Доброго времени суток. C# начал изучать недавно, но из-за неудачного спора с преподавателем по информатике получил следующее, довольно сложное для меня, задание:
Дана условная «партитура», представляющая из себя текстовый файл с определенной последовательностью чисел 0-6, разделители отсутствуют, каждому числу соответствует определенное значение частоты звука. Также имеется случайный .mp3 файл произвольной длины, характеристики файла (битрейт и т.п.) неизвестны. Сделать нужно следующее: 1) В mp3 файл после каждых 20 секунд добавить звук из «партитуры» длительностью 1 секунда. При достижении конца mp3 файла вывести сообщение (условно): «Обработка mp3 файла закончена, обработано 30 из 30 (19 из 50, 17 из 40,…) символов партитуры» Возможно, следует разделить mp3 файл на отдельные «кусочки» по 20 секунд, записать их в массив/коллекцию, после чего записать в новый mp3 файл «кусочек mp3 --- звук из партитуры --- кусочек mp3 --- звук из партитуры --- …». Альтернативного алгоритма я придумать пока не смог. Конвертирование mp3 в другие форматы крайне нежелательно, во избежание потери информации. 2) Считать полученный mp3 файл, после каждых 20 секунд найти значение частоты звука, соответствующее частоте число 0-6 записать в новую «партитуру», проверить, соответствует ли новая «партитура» старой, вывести сообщение «соответствует» либо «не соответствует». Что я уже успел посмотреть: "Программирование звука в Windows" Гордеев О. - сложная для меня книга, описаны в основном запись с микрофона/воспроизведение wav, что не совсем соответствует моему заданию. Audio and Video - Code Project - очень много информации, но из-за незнания английского воспользоваться этой информацией не могу. Если кто-нибудь скажет "читай ВОТ ЗДЕСЬ, это тебе точно поможет" и даст ссылку на определенную статью, вооружусь словарем и займусь ее переводом. удалена ссылка на посторонний форум - в разделе "Программирование звука" много информации, но конретно редактирования mp3 я не нашел, к тому же большинство программ написано на С++ и перевод на C# займет у меня очень много времени. Генерация звука - теперь знаю, как использовать Beep, но не представляю, как записать его в файл. Склеивание *.exe файлов - Возможно, с помощью этого кода можно будет склеить mp3 из полученных ранее "кусочков"? Если да, то можно ли с помощью этого кода файл на "кусочки" разрезать, чтобы после склеивания заново он все еще мог воспроизводиться? Буду благодарен за любые полезные ссылки/исходники/статьи/учебники и за все, что может помочь при разработке.
0
|
31.01.2010, 22:32 | |
Ответы с готовыми решениями:
14
Звук прерывается примерно каждые 5 секунд Звук, будто подсоединил USB каждые 30 секунд Загрузка каждые 10 секунд - случайный файл jpg папки Всплывающее окно через 30 секунд после загрузки страницы и затем каждые 30 секунд |
9715 / 2470 / 52
Регистрация: 06.03.2009
Сообщений: 8,500
|
|
01.02.2010, 00:11 | 2 |
MagiicKing, правила перечитайте. https://www.cyberforum.ru/announcement.php?a=3
первое предупреждение устное.
0
|
Заблокирован
|
||||||
02.02.2010, 15:00 | 3 | |||||
Добавляешь в проект Interop.Shell32.dll. В проекте делаешь ссылку на эту библиотеку. Получаешь время воспроизведения
Что не будет получаться пиши - поможем.
1
|
3 / 3 / 0
Регистрация: 31.01.2010
Сообщений: 36
|
||||||
02.02.2010, 20:11 [ТС] | 4 | |||||
ssv_www, Спасибо, найти время воспроизведения получилось, только в строке "string time = folder.GetDetailsOf(folderItem, 21);" заменил 21 на 27, при 21 выдавалось название композиции, а не время.
Еще научил Beep играть из "партитуры":
0
|
Заблокирован
|
||||||
03.02.2010, 10:34 | 5 | |||||
У меня вот так
//1-размер; 2-тип; 3- дата изменения; 4 и 5 - дата создания и открытия; 9 - исполнитель //10 - название песни; 12,20 - жанр; 16 - исполнитель?; 17 - название альбома; 21 - время звучания !!! ; //22 - качество звучания; 23 - защита (есть или нет); Возможно в разных композициях эта Инфа находится в разных местах? Как разбить? Могу только предложить свой вариант. Сам не давно занимался этим
1
|
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
03.02.2010, 11:52 | 6 |
А меня больше всего интересует как записать Бип() в файл.
0
|
3 / 3 / 0
Регистрация: 31.01.2010
Сообщений: 36
|
||||||
04.02.2010, 14:53 [ТС] | 7 | |||||
ssv_www, возможно, в разных композициях информация о времени действительно находится в разных местах. Не знаю, от чего это зависит, у меня везде 27. Чтобы не забивать этим голову, написал следующий код:
Разбить/склеить файлы вроде получается, спасибо. Пока не знаю, как записать Beep в mp3, думаю выводить звук на звуковую карту, записывать в Wav и конвертировать в mp3. На CodeProject вроде есть запись звука в mp3, хотя и на с++, попробую разобраться.
0
|
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
04.02.2010, 17:01 | 8 |
Выводить звук, чтоб записать - это не выход. И некрасиво, и мешать будет, и будет записывать и остальные звуки, ...
0
|
3 / 3 / 0
Регистрация: 31.01.2010
Сообщений: 36
|
|
06.02.2010, 12:46 [ТС] | 9 |
Как нормально записать Beep в файл я пока не придумал, сейчас пытаюсь понять, как найти частоту звука в определенный момент времени. На другом форуме мне посоветовали:
0
|
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
06.02.2010, 16:51 | 10 |
А если почитать о структуре файла в той же википедии и пробовать напрямую вставлять новые куски в файл?
0
|
3 / 3 / 0
Регистрация: 31.01.2010
Сообщений: 36
|
|
06.02.2010, 18:25 [ТС] | 11 |
Если верить той же википедии,
0
|
Заблокирован
|
|
06.02.2010, 18:40 | 12 |
Есть еще вариант: - Если знать какая последовательность байт соответствует той или иной частоте, можно было вставлять эту последовательность в нужное место в потоке.
Я шутки ради просто подменял определенные байты другими. При воспроизведении в некоторых местах появлялись шумы и треск.
0
|
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
06.02.2010, 21:53 | 13 |
А если поискать формат, в который бы легче было вставить свои данные, а потом конвертировать в мп3?
0
|
3 / 3 / 0
Регистрация: 31.01.2010
Сообщений: 36
|
|
07.02.2010, 12:36 [ТС] | 14 |
Можно попробовать "mp3 -> wav -> mp3", но не уверен, что это будет проще... К тому же могут появиться потери качества...
0
|
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
07.02.2010, 16:51 | 15 |
mp3 -> wav потерь точно не должно быть, а вот обратно - зависит от организации.
0
|
07.02.2010, 16:51 | |
07.02.2010, 16:51 | |
Помогаю со студенческими работами здесь
15
Компьютер зависает на 0,1 секунд каждые 5 секунд Изменение стиля текста в document.write через 10 секунд после загрузки сайта и изменяет цвет текста каждые 10 секунд Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |