Не воспроизводится wav файл windows 7. Работа с SD картой. Воспроизведение wav файла. Ч3. Мой компьютер не показывает расширений файлов, что сделать

Продолжение урока затянулось, оно и понятно, пришлось освоить работу с картами памяти и файловой системой FAT. Но все таки, оно свершилось, урок готов — фактически новогоднее чудо.

Дабы не перегружать статью информацией, я не буду описывать структуру формата wav файла, информации в поисковиках более чем предостаточно. Достаточно сказать, что если открыть файл, каким либо Hex редактором, то в первых 44 байтах содержится вся информация о типе файла, частоте дискретизации, количестве каналов и пр. Если нужно анализировать файл, читайте этот заголовок и будет вам счастье.

Полезные данные начинаются с 44 байта, по сути они содержат уровни напряжений, из которых формируется звук. Мы уже говорили про ступени напряжения, в прошлой части урока. Таким образом, все просто, нужно эти ступеньки вывести на динамик с частотой дискретизации файла.

Как физически заставить динамик дрыгаться? Нужно выводить эти уровни напряжения, при помощи ШИМ, либо использовать R2R. В любом случае, использовать очень просто, прочитал число, засунул его либо в OCR, либо в PORTx. Далее через определенное время, подставил следующее значение и так до конца файла.

Пример, некий wav файл, данные идут с 44=0х2С байта, там записано число 0х80, воспроизводим звук например ШИМом первого таймера, пишем OCR1A=0х80; Допустим, частота дискретизации вавки 8кГц, соответственно прерывание должно быть настроено на эту же частоту. В прерывании, подставляем следующее значение 0x85 через 1/8000=125мкс.

Как настроить прерывание на 8кГц? Вспоминаем, если таймер работает на частоте 250кГц, то регистр сравнения прерывания нужно подставить (250/8)-1=31-1 или 0x1E. С ШИМом тоже все просто, чем выше частота на которой он работает тем лучше.

Чтобы прошивка работала, условимся, что флешка отформатирована в FAT32, используется либа PetitFat из урока 23.2. Файл в формате wav либо 8кГц, либо 22,050кГц, моно. Название файла 1.wav. Анализируем прошивку.

#include #include "diskio.h" #include "pff.h" unsigned char buffer[ 512 ] ; /* буфер в который копируется инфа с флешки */ volatile unsigned int count; //счетчик скопированных данных interrupt [ TIM2_COMP] void timer2_comp_isr(void ) //прерывание в котором подставляются значения { OCR1A = buffer[ count] ; //выводим звук на динамик if (++ count >= 512 ) //увеличиваем счетчик count = 0 ; //если 512 обнуляем } void main(void ) { unsigned int br; /* счетчик чтения/записи файла */ unsigned char buf = 0 ; //переменная определяющая какая часть буфера читается FATFS fs; /* Рабочая область (file system object) для логических дисков */ PORTB= 0x00 ; DDRB= 0x02 ; //дрыгаем шимом ocr1a // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 8000,000 kHz // Mode: Fast PWM top=0x00FF // OC1A output: Non-Inv. TCCR1A= 0x81 ; TCCR1B= 0x09 ; TCNT1= 0x00 ; OCR1A= 0x00 ; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: 250,000 kHz // Mode: CTC top=OCR2 TCCR2= 0x0B ; TCNT2= 0x00 ; //OCR2=0x1E; //настройка регистра сравнения для 8кГц OCR2= 0xA ; //для 22кГц #asm("sei") // Timer(s)/Counter(s) Interrupt(s) initialization if (disk_initialize() == 0 ) //инициализируем флешку { pf_mount(& fs) ; //монтируем файловую систему pf_open("1.wav" ) ; //открываем вавку pf_lseek(44 ) ; //перемещаем указатель на 44 pf_read(buffer, 512 ,& br) ; //в первый раз заглатываем сразу 512байт TIMSK= 0x80 ; //врубаем музон while (1 ) { if (! buf && count> 255 ) //если воспроизвелось больше 255 байт, { pf_read(& buffer[ 0 ] , 256 ,& br) ; //то читаем в первую половину буфера инфу с флешки buf= 1 ; if (br < 256 ) //если буфер не содержит 256 значений значит конец файла break ; } if (buf && count< 256 ) { pf_read(& buffer[ 256 ] , 256 ,& br) ; // читаем во вторую часть буфера с флешки buf = 0 ; if (br < 256 ) break ; } } TIMSK = 0x00 ; //глушим все pf_mount(0x00 ) ; //демонтируем фат } while (1 ) { } }

#include #include "diskio.h" #include "pff.h" unsigned char buffer; /* буфер в который копируется инфа с флешки */ volatile unsigned int count; //счетчик скопированных данных interrupt void timer2_comp_isr(void) //прерывание в котором подставляются значения { OCR1A = buffer; //выводим звук на динамик if (++count >= 512) //увеличиваем счетчик count = 0; //если 512 обнуляем } void main(void) { unsigned int br; /* счетчик чтения/записи файла */ unsigned char buf = 0; //переменная определяющая какая часть буфера читается FATFS fs; /* Рабочая область (file system object) для логических дисков */ PORTB=0x00; DDRB=0x02; //дрыгаем шимом ocr1a // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 8000,000 kHz // Mode: Fast PWM top=0x00FF // OC1A output: Non-Inv. TCCR1A=0x81; TCCR1B=0x09; TCNT1=0x00; OCR1A=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: 250,000 kHz // Mode: CTC top=OCR2 TCCR2=0x0B; TCNT2=0x00; //OCR2=0x1E; //настройка регистра сравнения для 8кГц OCR2=0xA; //для 22кГц #asm("sei") // Timer(s)/Counter(s) Interrupt(s) initialization if(disk_initialize()==0) //инициализируем флешку { pf_mount(&fs); //монтируем файловую систему pf_open("1.wav"); //открываем вавку pf_lseek(44); //перемещаем указатель на 44 pf_read(buffer, 512,&br); //в первый раз заглатываем сразу 512байт TIMSK=0x80; //врубаем музон while(1) { if(!buf && count>255) //если воспроизвелось больше 255 байт, { pf_read(&buffer, 256,&br);//то читаем в первую половину буфера инфу с флешки buf=1; if (br < 256) //если буфер не содержит 256 значений значит конец файла break; } if(buf && count<256) { pf_read(&buffer, 256,&br); // читаем во вторую часть буфера с флешки buf = 0; if (br < 256) break; } } TIMSK = 0x00; //глушим все pf_mount(0x00); //демонтируем фат } while (1) { } }

Для проверки, на ножку OCR1A подключаем динамик через конденсатор 100мкФ, «+» на ножку микроконтроллера, «-» на динамик. «-» динамика на землю, «+» на конденсатор.

Не ждите громкого сигнала на выходе, чтобы звучало громко, необходим усилитель. На видео это хорошо видно. Для теста залил петуха 8кГц и трек 22кГц.

Желающие могут смело увеличить частоту таймера2, чтобы проигрывать файлы 44кГц, опыты показывают, что можно добиться вполне неплохого качества звучания. На видео звук слабый и качество плохое, но на самом деле это из-за того, что снимал на фотоаппарат.

Также выкладываю материалы любезно предоставленные Аппаратчиком — исходник для GCC, с которого была написана прошивка под CAVR.

И видео с воспроизведением 44кГц.

Пользуясь случаем поздравляю Всех с Наступающим, желаю чтобы все прошивки и девайсы у вас работали 🙂

Проект wav плеера на Atmega8

Очень маленький инструмент для воспроизведения WAV файлов. Программа не требует установки, поэтому вы можете скопировать Wav Player на сеъмный носитель и запускать программу на любом компьютере.

Интерфейс программы состоит из маленького простого окна, через которое вы можете искать нужные файлы в древовидной структуре папок ("drag and drop" не поддерживается). Вы можете воспроизводить треки, использовать паузу, сортировать файлы по имени или дате, удалять их с жесткого диска, создавать и сохранять плейлисты, настраивать громкость воспроизведения и выбирать звуковую карту для воспроизведения.

В настройках (Options) вы можете ассоциировать все WAV файлы с этой программой, включить запоминание позиции и размера окна и применить некоторые другие опции. Программа работает довольно стабильно, во время тестирования не было замечено каких-либо ошибок. Однако интуитивности в расположении элементов и названиях опций не хватает. Например, для того, чтобы видеть линейку прокрутки трека нужно в выпадающем вниз меню активировать пункт "Set position". В целом программа очень простая и совсем не похожа на современные плееры, и если учесть, что на рынке есть намного более продвинутые средства воспроизведения музыки, то достоинствами этой программы можно назвать только портативность и маленький размер исполняемого файла.

Объявление

Формат файлов WAV Audio

Файлы WAV (WAVE) были созданы компанией IBM и Microsoft. Они содержат различные аудиоданные - звуки, звуковые эффекты, музыку, а также записи голоса. Программы проигрывания медиафайлов (Windows Media Player, QuickTime и т.п.) могут воспроизводить и открывать такие файлы. Файлы WAV значительно больше файлов MP3, и именно поэтому они не пользуются популярностью. Отличительная черта файлов WAV - их технология сжатия звука без потерь. Полученные файлы отличаются высоким качеством и большими размерами, что значительно вредит их популярности. Отправка и загрузка таких файлов требует много времени и дискового пространства.

Технические сведения о файлах WAV

Файлы WAV используют формат файлов для обмена ресурсами, с помощью которого происходит сохранение данных. Данные хранятся в кластерах, которые содержат тег из 4 символов, а также кол-во байт в кластере. Аналог данного формата для ОС Mac - файлы AIFF. Файлы WAV могут иметь семплы от 8 до 16 бит при частотах от 11 025 до 44 100 Гц. Максимальное качество файлов WAV - 16 бит, 44 100 Гц, и именно такой частотой дискретизации обладают дорожки на компакт-дисках, на которых секунда звука "весит" 88 кБ. При кодировании цифрового потока обычно используется формат линейной-импульсно-кодовой модуляции. Системные звуки в ОС Windows при запуске ОС, нажатии на ярлыки, при выдаче ошибок, выключении компьютера и т.п. представляют собой несжатые файлы WAV.

Дополнительная информация о формате WAV

Воспроизведение WAV-аудио

Платформа.NET Framework имеет небогатую историю поддержки звука. Версии 1.0 и 1.1 не предлагали никакого управляемого способа воспроизведения аудио, а когда долгожданная поддержка, наконец, появилась в.NET 2.0, она была представлена в форме не приводящего в восторг класса SoundPlayer (который можно найти в "малонаселенном" пространстве имен System.Media). Класс SoundPlayer довольно ограничен: он может воспроизводить только файлы в формате WAV, не поддерживает воспроизведения одновременно более одного звука и совсем не предоставляет возможностей управления никакими аспектами воспроизведения аудио (например, громкостью и балансом).

Чтобы получить эти возможности, разработчики, использующие Windows Forms, вынуждены были работать с библиотекой неуправляемого кода quartz.dll. Библиотека quartz.dll - ключевая часть DirectX, и она присутствует в проигрывателе Windows Media и операционной системе Windows. (Тот же компонент известен под названием DirectShow, а предыдущие версии назывались ActiveMovie.)

Класс SoundPlayer поддерживается в приложениях WPF. Если смириться с его существенными ограничениями, то можно сказать, что он предлагает наиболее простой и легкий способ добавления работы с аудио в приложения. Класс SoundPlayer также упаковывается в класс SoundPlayerAction. который позволяет воспроизводить звук через декларативный триггер (вместо написания нескольких строк кода C# в обработчике событий). В следующих разделах будет представлен краткий обзор обоих классов, а затем уже описания более мощных WPF-классов MediaPlayer и MediaElement.

Класс SoundPlayer

Чтобы воспроизвести звук с помощью класса SoundPlayer, понадобится выполнить перечисленные ниже шаги:

    Создать экземпляр SoundPlayer.

    Указать звуковое содержимое, установив либо свойство Stream , либо свойство SoundLocation . Если есть объект Stream, содержащий звук в формате WAV, используйте свойство Stream. Если же есть путь к файлу или URL, указывающий на файл WAV, применяйте свойство SoundLocation.

    Если аудио-содержимое хранится в виде двоичного ресурса и встроено в приложение, то потребуется доступ к нему в виде потока и использование свойства SoundPlayer.Stream. Причина в том, что SoundPlayer не поддерживает синтаксис упакованных URL в WPF.

    Установив свойство Stream или SoundLocation, можно заставить SoundPlayer в действительности загрузить аудиоданные, вызвав метод Load() или LoadAsync(). Метод Load() наиболее прост - он останавливает выполнение кода до тех пор, пока весь звуковой фрагмент не будет загружен в память. LoadAsync() выполняет свою работу в другом потоке и по завершении инициирует событие LoadCompleted.

    Формально использовать Load() или LoadAsync() не обязательно. Экземпляр SoundPlayer загружает аудиоданные по мере необходимости, когда вызывается метод Play() или PlaySync(). Однако явно загрузить аудио-фрагмент - хорошая идея; это не только позволит снизить накладные расходы при многократном воспроизведении, но также упростит обработку исключений, связанных с файловыми проблемами, отдельно от исключений, вызванных причинами, относящимися к процессу воспроизведения.

    После этого можно вызвать PlaySync() , который приостановит код на время воспроизведения аудио-фрагмента, или же применить Play() для воспроизведения в другом потоке, обеспечивая интерфейсу приложения способность реагировать на действия пользователя. Единственный другой доступный вариант - это метод PlayLooping() , воспроизводящий аудио-фрагмент асинхронно в бесконечном цикле (что идеально для саундтреков). Чтобы остановить текущее воспроизведение в любой момент, необходимо вызвать метод Stop() .

В следующем фрагменте кода демонстрируется простейший подход к загрузке и асинхронному воспроизведению аудиофайла:

SoundPlayer sp = new SoundPlayer(); sp.SoundLocation = "tada.wav"; sp.Load(); sp.PlayLooping()

До сих пор в коде предполагалось, что аудиофайл присутствует в том же каталоге, что и скомпилированное приложение. Однако загружать SoundPlayer-аудио из файла не обязательно. Для коротких звуков, которые воспроизводятся в нескольких местах приложения, возможно, разумнее встроить звуковые файлы непосредственно в скомпилированную сборку в виде двоичных ресурсов (не путайте их с декларативными ресурсами, определяемыми в коде разметки XAML). Эта техника работает со звуковыми файлами так же хорошо, как и с графическими изображениями.

Например, если добавить файл ding.wav как ресурс по имени Ding (просто перейдите к узлу Properties --> Resources (Свойства --> ресурсы) в окне Solution Explorer и воспользуйтесь поддержкой визуального конструктора), то можно будет применить следующий код для его воспроизведения:

SoundPlayer player = new SoundPlayer(); player.Stream = Properties.Resources.Ding; player.Play();

Класс SoundPlayer не слишком хорошо работает с большими аудиофайлами, поскольку он должен загрузить в память весь файл целиком. Может показаться, что данную проблему можно разрешить, разбив большой аудиофайл на куски, однако класс SoundPlayer не предназначен для этого. Не существует простого способа такой синхронизации SoundPlayer, чтобы он мог воспроизвести множество аудиофрагментов друг за другом, поскольку он не обеспечивает никаких средств для организации очередей. Всякий раз, когда вызывается метод PlaySound() или Play(), текущее воспроизведение останавливается. Обходные пути возможны, но намного лучше вместо этого воспользоваться классом MediaElement.

Класс SoundPlayerAction

Класс SoundPlayerAction позволяет более удобно использовать класс SoundPlayer. Класс SoundPlayerAction унаследован от TriggerAction, который позволяет использовать его в ответ на любое событие.

Ниже приведена разметка кнопки, применяющей SoundPlayerAction для подключения события Click к звуку. Триггер организован так, что его можно применить к множеству кнопок (если перенести его в коллекцию Resources):

При использовании SoundPlayerAction звук всегда воспроизводится асинхронно.

What is WAV file? WAV (WAVE) is short for Waveform Audio File Format. WAV is an audio standard developed by Microsoft and IBM specifically for storing audio bitstream on computers. The WAV file used for raw and uncompressed audio, and it has grown to become a standard computer audio format for everything from system and game sounds to radio broadcasting.

Since WAV file is very popular now, it is not hard to find an audio player that is compatible with WAV file. In this article, we have listed the best WAV player we could find for you to play WAV player smoothly on PC/Mac.

Best WAV player for Windows/Mac

Расширение файла .wav
Категория файлов
Файл-пример (6,1 MiB)
(1,5 MiB)
Связанные программы CyberLink PowerDirector
Microsoft Windows Media Player
Roxio Creator 2009
9
No. Screenshot Features
1 Free Media Player
  • ◆ Best free all-in-one WAV player for Windows/Mac users.
    ◆ Enable to play HD/4K UHD videos.
    ◆ Support audio formats like WAV, OGG, FLAC, AAC, MP3, etc.
2
(WAV player for: Windows/Mac)
  • ◆ Play WAV, FLAC, MP3, OGG, WMA, AAC, etc.
    ◆ Play WMV, MP4, MKV, MTS, M2TS, VOB, and more video files.
    ◆ Play Blu-ray disc/folder.
3 VLC Media Player
(WAV player for: Windows/Mac)
  • ◆ One of the most popular media player, work as a video player or a audio player.
  • ◆ Supported audio/video formats: WAV, FLAC, MP4, MP3, AVI, MKV, WMV, VOB and more.
  • ◆ WAV player for both Windows/Mac. Simple and easy-to-use.
4

(WAV player for: Windows)

  • ◆ Default WAV player for Windows.
  • ◆ Clean and simple interface.
5
(WAV player for: Mac)
  • ◆ Default WAV player for Mac.
  • ◆ Play audio formats smoothly like WAV, FLAC, M4A, AAC, WAV, WMA, APE, OGG, etc.
  • ◆ A good audio managment tool for iPhone, iPad and iPod.
6

(WAV player for: Windows/Mac)

  • ◆ Free and most popular audio player which can player WAV file greatly.
  • ◆ Winamp can be downloaded and installed on Windows, Mac, iOS and Android.
  • ◆Include music visualization, playlist creation, plug-ins, skins and a media library.
7
(WAV player for: Windows)
  • ◆ Free WAV player for Windows 8/7/Vista/XP.
  • ◆ Support more than 80 types of video/audio formats including WAV.
  • ◆ Everything needed is included in the setup program. No obscure codecs needed.
8
(WAV player for: Mac)
  • ◆ A multifunctional free media player for Mac that can be taken as WAV player.
  • ◆ Supports a wide range of common audio & video formats, including WAV, FLV, SWF, WMV, AVI, MOV, MP4, MP3, DAT, FLAC, M4V, MPG, MKV and more
  • ◆Boasts features such as built-in web-browser and Open URL option that allow you to watch online videos from the app window.

(WAV player for: Windows)
  • ◆ An excellent audio player that can play WAV, FLAC, MP3, M4A, AAC, OGG, WMA and more.
    ◆ Sync music from various devices to your computer and works as an alternative to itunes as well.
10 VOX
(WAV player for: Mac/Windows)
  • ◆ Vox media player can play WAV, FLAC, OGG, WMA, MP3 and other audio files.
  • ◆ Vox has Vox for Mac and Vox for Windows.
  • ◆ Enable you to listen to any kind of music on any kind of your wireless output devices.

Q&A about WAV playback

In this article, I have introduced 8 best WAV players for you to play WAV file smoothly on Wuter or pindows or Mac. Of course, a WAV player is not optional. You could also try to convert WAV file to MP3 for easy enjoyment on iPhone/iPod. Have better WAV player recommendation? Feel free to leave your suggestion down below!

Q1. How to free play WAV files on Mac?

Free Media Player is definitely what you want. This free Mac WAV player is able to let you paly WAV files with great audio quality.


Q2. Can VLC play WAV files?

Yes, VLC can play WAV files. VLC comes equipped with the digital programming that instructs it how to handle data sent via the WAV format.

1) Launch the VLC media player. Click on "Media" from the menu bar.
2) Click on "Open File" from the pop-up window and get ready to load your WAV files.
3) Click on the "Open" button. The WAV file will load and the VLC media player will start playing it automatically.

Q3. How do I play WAV file on my mobile phone?

You can use Free Video Converter to free convert music to WAV format and then play WAV iPhone or Android smartphone.

In this article, I have introduced best WAV players for you to play WAV file smoothly on Windows or Mac. What is your favorite WAV Player? Leave what you want to say below!

What do you think of this post?

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то