This project has moved and is read-only. For the latest updates, please go here.

Приступая к работе с NAudio
Самый простой способ встроить NAudio в ваш проект - это установить последнюю версию NuGet NAudio package. Пред-релизные версии NAudio так-же часто доступны на сайте NuGet.
Альтернативно, вы можете скачать последний релиз в бинарном формате из вкладки загрузок на CodePlex.
NAudio поставляется с несколькими демо-приложениями, которые являются самым быстрым способом посмотреть как использовать различные особенности NAudio. Вы можете скачать скомпилированные демо-приложения извкладки загрузок, и изучать исходный код здесь.
Обучающие курс NAudio
Если вы хотите продвигаться в программировании NAudio так быстро, как только возможно, я рекомендую вам посмотреть эти 2 курса Pluralsight. Вам нужно стать подписчиком что бы получить доступ к контенту, но там целых 10 часов обучающего материала NAudio. Вы так-же получите доступ к их огромной обучающей библиотеке в других программных темах.
(от переводчика: эти курсы платные, но в интернете есть эти же уроки, но выложенные бесплатно)

Что бы быть успешным в разработке приложений, которые обрабатывают цифровое аудио вам нужно понять некоторые ключевые концепции (понятия, идеи). Что бы помочь разработчикам в продвижении с тем, что им следует знать перед попытками использования NAudio, я создал курс Основы цифрового аудио, который охватывает:
1) частоты дискретизации
2) разрядности
3) форматы файлов
4) кодеки
5) децибелы
6) обрезку
7) сглаживание
8) синтез
9) визуализации
10) эффекты
и многое другое
В частности, четвертый модуль в списке - это важная фоновая информация, если вы хотите быть эффективным в NAudio.

Аудио программирование с NAudio
- это усовершенствованный курс, который содержит 7 часов обучающего материала, охватывающего все основные особенности NAudio. Настоятельно рекомендуется пройти этот курс, если вы намереваетесь создать приложение с NAudio.
Как я...?
Лучший способ научиться использовать NAudio - это скачать исходный код и посмотреть в демо-приложения - NAudioDemo и NAudioWpfDemo. Они демонстрируют несколько ключевых возможностей фреймворка NAudio. У них так-же есть преимущество в том, что они актуальные, в то время как некоторые руководства, которые вы найдете в интернете, ссылаются на старые версии NAudio.

NAudio F.A.Q.

Что такое NAudio?

NAudio - это аудио API с открытым исходным кодом для .NET, написанное на C# Марком Хифом (Mark Heath), с со действиями многих других разрабочиков. Оно предназначено для предоставления полного набора полезных классов классов из которых вы можете сконструировать своё собственное аудио приложение.

Почему NAudio?

NAudio был создан потому, что библиотека классов платформы, которая поставляется с .NET 1.0 не имеет поддержки для воспроизведения аудио. Пространство имен System.Media, представленное в .NET 2.0 предоставляло не много поддержки, и MediaElement в WPF и Silverlight было не многим лучше. Цель NAudio предоставить комплексный набор классов связанных с аудио, позволяющих легко разрабатывать утилиты, которые воспроизводят или записывают аудио, или манипулируют аудио файлами каким-то способом.

Я могу использовать NAudio в своем проекте?

NAudio находится под лицензией Microsoft Public License (Ms-PL), которая означает, что вы можете использовать в любом проекте, включая коммерческие. Конечно, очень понравилось, если бы вы поделились бы любыми исправлениями багов или усовершенствованиями, которые вы сделали с оригинальными файлами проекта NAudio.

Производительности .NET достаточно для аудио?

В то время как .NET не может конкурировать с неуправляемыми языками за очень низкую задержку работы аудио, он по прежнему работает лучше, чем многие люди ожидали бы. На достаточно скромных ПК, вы можете довольно просто микшировать множественные WAV файлы вместе, включая их обработку различными эффектами и кодеками, воспроизводить безошибочно с задержкой около 50мс.

Как я могу получить помощь?

Есть 3 различных способа что бы получить помощь. Во первых, вы можете задать вопрос на форумах обсуждения NAudio здесь, на CodePlex. Это лучший способ, когда вы написали какой-то код и хотите спросить почему он не работает так как вы ожидаете. Я стараюсь отвечать на все вопросы но, т.к. это проект, которым я занимаюсь в свободное время, я иногда отстаю.
Вы так-же можете задать вопрос на StackOverflow и пометить свой вопрос тегом naudio, если ваш вопрос рода "Как мне сделать что бы...". Это дает вам лучший шанс получить быстрый ответ. Пожалуйста, попробуйте сначала поискать, дан ли уже где-то ответ на ваш вопрос.
Наконец, я могу иногда предоставлять оплаченную поддержку в ситуациях, когда вам нужен быстрый совет, исправление бага, или новые опции. Используйте опцию контакты сайта Codeplex, что бы связаться с Mark Heath если вы хотите воспользоваться этой возможностью.

Как мне предоставить патч?

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

  • Ваш материал должен быть вашей собственной работой, и могла быть выпущена под лицензией MS-PL.
  • Вы должны убедиться, что ваш код соответствует планировке и именованию соглашений, используемых везде в NAudio.
  • Помните, что существует множество пользователей NAudio. Патч, который изменяет внешний интерфейс вряд ли будет принят.
  • Старайтесь писать чистый код - избегайте длинный функций и длинных классов. Пытайтесь добавить новую возможность, создавая новый класс, вместо того что бы класть нагрузки дополнительного кода в существующий.
  • Я обычно не принимаю дополнения, которые не могу протестировать. Поэтому пожайлуста, пишите юнит-тесты (используя NUint) если это возможно. Если нет, дайте ясное объяснение как ваша опция может быть юнит протестированна  и предоставьте тестовые данные если понадобится. Скажите мне, что вы сделали что бы самостоятельно протестировать это, включая и то, какие операционные системы и звуковые карты вы использовали.
  • Если вы добавляете новую возможность, пожалуйста почему бы вам не написать короткое руководство как использовать её.
  • Если ваш патч - это маленькое исправление бага, я просмотрю код и дам вам ответ. Вы должны быть готовы сделать рекомендованные изменения прежде, чем они смогут быть встроены в основной код.
  • Самый простой способ предоставить патч - это создать ваш собственный форк (ответвление) на Mercurial и решить тянущий запрос. Посмотрите это видео если вы новичек в Mercurial.
  • Пожалуйста, так-же имейте ввиду, что когда вы добавляете опцию в NAudio, эта опцию создаст в будущем запрос на поддержку и отчеты о багах. Готовы ли вы торчать на форумах и помогать людям использовать её? 

Last edited Jul 18, 2014 at 9:12 AM by markheath, version 1

Comments

No comments yet.