Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
6 / 3 / 0
Регистрация: 04.05.2018
Сообщений: 407

Отсутствие модуля MediaPlayer

29.01.2020, 20:10. Показов 3093. Ответов 48
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне необходимо не только загружать, но и изменять громкость в PascalABC.NET звуковых файлов, по этому SoundPlayer мне не подходит. Когда пишу что-то в духе:
Pascal
1
2
uses System.Windows.Media. //На новую точку он мне ничего не предлагает
//А на написание после точки "MediaPlayer" выдает ошибку
Подскажите что в данном случае делать? Не могу найти документации по MediaPlayer
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.01.2020, 20:10
Ответы с готовыми решениями:

Отсутствие модуля pexpect
Здравствуйте, прошу помощи, значит есть у меня сервер, на Debian 8 x86, есть у меня скрипт .py который нужно запустить с сервера, для...

"constructor MediaPlayer in class MediaPlayer cannot be applied to given types"
Проблема в строке "37--final MediaPlayer mp = new MediaPlayer(this,R.raw.sample);" Ошыбка : Error:(39, 41) error: constructor...

Как из одного модуля добраться к языковым переменным другого модуля? (Joomla 2.5)
Хочу сделать регистрацию в модальном окне. Для этого делаю модуль вставки html и вставляю форму регистрации под футер. Но мне нужно как-то...

48
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
29.01.2020, 21:02
Лучший ответ Сообщение было отмечено MetMark как решение

Решение

В таких случаях заходите на msdn и смотрите пространство нужное имён:
https://docs.microsoft.com/en-... mework-4.8

Выбираете класс которые хотите использовать и смотрите в каких .dll его можно найти.

Добавлено через 1 минуту
Цитата Сообщение от MetMark Посмотреть сообщение
Не могу найти документации по MediaPlayer
Документация по всему из System это всегда msdn. Где вы искали вообще?

Добавлено через 5 минут
И ещё, модуля MediaPlayer не существует.

Список всех модулей можно найти в папке:
C:\Program Files (x86)\PascalABC.NET\LibSource

Все имена до точки перед именем класса/записи - это пространство имён а не модуль.

К примеру есть запись System.IntPtr:
Pascal
1
2
3
begin
  var i: System.IntPtr;
end.
Его можно использовать ничего не подключая (кроме .dll, но IntPtr находится в автоматически подключаемой .dll).

И прописывание uses System ничего не добавляет в .exe, в отличии от подключения модуля.
uses System позволяет только не писать System. перед именами типов из него:
Pascal
1
2
3
4
5
uses System;
 
begin
  var i: IntPtr;
end.
1
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
29.01.2020, 21:09
Все имена до точки перед именем класса/записи - это пространство имён а не модуль.
Это не так. Имя модуля тоже может стоять перед именем типа. Не путайте человека. Такое может использоваться, например, для разрешения конфликта имён в случае если в нескольких модулях есть одноимённый тип, переменная или подпрограмма, кроме того, это делает код более наглядным.
1
6 / 3 / 0
Регистрация: 04.05.2018
Сообщений: 407
29.01.2020, 21:17  [ТС]
Цитата Сообщение от Sun Serega Посмотреть сообщение
Где вы искали вообще?
В том то и дело, что нигде, хех

Sun Serega,
Assembly:PresentationCore.dll
Эта запись значит, то мне необходимо подключить данную библиотеку, если я правильно понял?
Обязательно закидывать его в папку с .pas?
0
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
29.01.2020, 21:19
MetMark, да, значит. Закидывать в папку с программой обязательно. Это с модулями необязательно...
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
29.01.2020, 21:19
Цитата Сообщение от Соколиный глаз Посмотреть сообщение
Это не так. Имя модуля тоже может стоять перед именем типа.
Это вы его путаете, излишними усложнениями.

Модуль создаёт своё пространство имён при подключении. И это анализатор кода вполне адекватно показывает.

Вот только для данной темы это ни к чему. Уточнения можно бесконечно добавлять.
1
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
29.01.2020, 21:21
Это вы его путаете, излишними усложнениями.

Модуль создаёт своё пространство имён при подключении. И это анализатор кода вполне адекватно показывает.

Вот только для данной темы это ни к чему. Уточнения можно бесконечно добавлять.
Вот только Вы неточно выражаетесь. А потом пытаетесь выкрутиться из положения... Незачем так делать.
1
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
29.01.2020, 21:22
Цитата Сообщение от MetMark Посмотреть сообщение
Обязательно закидывать его в папку с .pas?
Нет, это стандратная .dll . Её достаточно через ref+Shift+Space подключать.

А вообще правильно сначала тестировать, а потом спрашивать.
И перед созданием темы надо было поискать в интернете и предоставить ссылки на всё что нашли.

А то толку от такого обучения 0. Если вы не пытаетесь разбираться сами - вы можете научится паскалю и .Net, но не программированию.
1
6 / 3 / 0
Регистрация: 04.05.2018
Сообщений: 407
29.01.2020, 21:22  [ТС]
Sun Serega, Соколиный глаз, Мужики, все хорошо.
0
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
29.01.2020, 21:37
MetMark, посмотрите мой блог, в котором собирал полезные сайты по программированию.
0
6 / 3 / 0
Регистрация: 04.05.2018
Сообщений: 407
29.01.2020, 22:08  [ТС]
Соколиный глаз, окей. Спасибо.
Я тут попробовал разобраться, написал такой код заранее подключив библиотеку и прописав переменную в "var":
Pascal
1
2
3
4
  BackgroundMusic := new System.Windows.Media.MediaPlayer;
  BackgroundMusic.Open(new System.Uri('bin\sound\BackgroundMusic.mp3', System.UriKind.Relative));
  BackgroundMusic.Play();
  BackgroundMusic.Volume := 1;
Но звука нет... Что не так. Я опять что-то не понял?
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
29.01.2020, 22:27
Цитата Сообщение от MetMark Посмотреть сообщение
и прописав переменную в "var"
var до begin это неправильно и медленно.

Правильно прописывать его там - где переменная первый раз используется (если, конечно, вам она не нужна после завершения этого кода):
Pascal
1
2
3
4
5
begin
  var BackgroundMusic := new System.Windows.Media.MediaPlayer;
  BackgroundMusic.Open(new System.Uri('bin\sound\BackgroundMusic.mp3'));
  BackgroundMusic.Play();
end;
Что касается почему нет звука - дело в .mp3 файле, потому что у меня работает.

И Volume вообще не обязательно что то присваивать, если зажмёте Ctrl и тыкните на него - увидите:
Pascal
1
2
3
  /// Получает или задает громкость мультимедиа.
  /// Возвращаемое значение: The media's volume represented on a linear scale between 0 and 1.The default is 0.5.
  public property Volume : real;
1
6 / 3 / 0
Регистрация: 04.05.2018
Сообщений: 407
29.01.2020, 23:25  [ТС]
Цитата Сообщение от Sun Serega Посмотреть сообщение
И Volume вообще не обязательно что то присваивать
А как же громкость регулировать?
Я хочу потом связи прописать, чтобы пользователь мог сам задавать громкость ползунком? Как Volume указать нужную громкость?

Добавлено через 13 минут
Цитата Сообщение от Sun Serega Посмотреть сообщение
дело в .mp3 файле, потому что у меня работает.
Перепробовал десяток файлов, все не работает. Не могли бы вы свой кинуть? Что-то у меня сомнения по поводу моих mp3 файлов
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
29.01.2020, 23:48
Цитата Сообщение от MetMark Посмотреть сообщение
А как же громкость регулировать?
Я говорю что для того чтоб хоть как то воспроизвелось - не обязательно. Этого надо добиться перед тем как прикручивать регуляторы громкости.

Цитата Сообщение от MetMark Посмотреть сообщение
Не могли бы вы свой кинуть?
Лучше б вы и скинули первым, раз спрашиваете.

Ну да ладно:
Pascal
1
2
3
4
5
6
7
8
{$reference PresentationCore.dll}
 
begin
  var BackgroundMusic := new System.Windows.Media.MediaPlayer;
  BackgroundMusic.Open(new System.Uri('tada.wav', System.UriKind.Relative));
  BackgroundMusic.Play();
  readln;
end.
Прикладываю системный звук, из папки C:\Windows\Media

То что он .wav - не важно, MediaPlayer все основные форматы поддерживает одинаково хорошо.
Вложения
Тип файла: rar tada.rar (116.9 Кб, 1 просмотров)
1
6 / 3 / 0
Регистрация: 04.05.2018
Сообщений: 407
30.01.2020, 08:13  [ТС]
Sun Serega, и даже ваш вариант не работает... Не понимаю что не так... Можешь он использует какие-то конкретные драйвера для воспроизведения или что-то в таком духе?

Sun Serega, создал вообще отдельный .pas файл, новый, но там тоже не сработало... Что же ему не нравится? Все варианты громкости у меня работают. Единственное запускаю я не через .exe программу
0
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
30.01.2020, 08:18
Pascal
1
2
3
4
5
6
7
8
9
10
11
{$reference PresentationCore.dll}
 
uses System.Windows.Media;
uses System;
 
begin
  var backgroundMusic := new MediaPlayer();
  backgroundMusic.Open(new Uri('C:\PABCWork.NET\fast_and_furious_presents_hobbs_and_shaw_01. Time In A Bottle.mp3', UriKind.Absolute));
  backgroundMusic.Play();
  Readln();
end.
Работает. Ссылка на скачивание трека.
1
6 / 3 / 0
Регистрация: 04.05.2018
Сообщений: 407
30.01.2020, 08:23  [ТС]
Соколиный глаз, Вооооо

Соколиный глаз, и у меня заработало

Соколиный глаз, тогда и в правду дело в mp3 файле? А что с ним может быть не так?
0
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
30.01.2020, 08:24
Цитата Сообщение от MetMark Посмотреть сообщение
Соколиный глаз, тогда и в правду дело в mp3 файле?
Скиньте его сюда, либо дайте ссылку на скачивание с файлообменника.
1
6 / 3 / 0
Регистрация: 04.05.2018
Сообщений: 407
30.01.2020, 08:33  [ТС]
Соколиный глаз, Так, а вот сейчас я свой попробовал и он тоже заработал. Я полагаю что дело было в ReadLn.
В моей программе музыка воспроизводится через процедуру, мне нужно так же приостановить завершение процедуры, как в вашей программе (зациклить как-нибудь, мб sleep(ms)). Только чтобы у меня не только играла музыка, а еще пользователь мог работать в программе, для музыки выделить отдельный поток что-ли?
0
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
30.01.2020, 08:35
Да, можно и поток выделить. Кстати, Sleep лучше не использовать если применяете потоки напрямую, чтобы не было смеси Паскале-подобного и NET-овского. Реализация Sleep:
Pascal
1
2
3
4
procedure Sleep(ms: integer);
begin
  System.Threading.Thread.Sleep(ms);
end;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.01.2020, 08:35
Помогаю со студенческими работами здесь

Устранить ошибку отсутствия модуля exeptions при импорте модуля docx
Доброго времени суток! только начал знакомство с питоном, установил pip, pycharm и тд. Вот решил сделать хоть немного нужную программку....

ПММ AEG. Нужна ремонтная документашка и прошивка силового модуля и модуля индикации
F55402VI0P 911676002 j24_cac01_02z003.dax 117384831 computime code: ELED046 ELECTROLUX CODE: 328604682 SW VERSION:EMJ24_FR ...

запуск модуля из модуля (Sub test() CommandBars(1).Enabled = False load module2.test1 End Sub)
Sub test() CommandBars(1).Enabled = False load module2.test1 End Subвот что-то типа такого и не воркает.

В начало каждого модуля должен быть помещен комментарий, описывающий функции данного модуля
Очень нужна ваша помощь. Пожалуйста, кто знает, помогите с этой задачей. Задача на тему: Использование процедур и функций Примечание: В...

Функции модуля работают, но самого модуля в книге не видно
Помогите, пожалуйста. Написал в модуле функцию. Использовал ее на листе и сохранил файл. Когда открыл файл, модуль VBA пропал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru