Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/34: Рейтинг темы: голосов - 34, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 25.07.2015
Сообщений: 9

Как воспроизвести .mp3 файл на Visual Basic 6.0?

25.07.2015, 19:16. Показов 7833. Ответов 39
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При запуске формы мне нужно воспроизвести .mp3 файл.
С форматом .wav я разобрался, вот код:
Visual Basic
1
2
3
4
5
6
Private Sub Form_Load()
Плеер. DeviceType = "WaveAudio"
Плеер. FileName = "D:\Music\nice.wav"
Плеер. Command = "Open"
Плеер. Command = "Play"
End Sub
Что нужно в коде изменить чтобы проигрывался .mp3 файл?
например мне нужно проиграть файл beautiful.mp3, который находится в D:\Music\
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.07.2015, 19:16
Ответы с готовыми решениями:

Как воспроизвести mp3 файл
Как воспроизвести mp3 или другой звуковой файл?

Как воспроизвести mp3 файл?
Всем привет! Как воспроизвести mp3 файл?

Как воспроизвести mp3 файл из ресурсов?
У меня в ресурсах проекта есть mp3 и я его хочу воспроизвести. Как же мне это сделать? И чтобы можно было переносить exe-шник из места в...

39
38 / 38 / 16
Регистрация: 04.03.2014
Сообщений: 249
26.07.2015, 01:03
Visual Basic
1
2
3
4
5
6
7
8
9
'Воспроизводим файл
Private Sub Command1_Click()
Call mciExecute("play c:\Slow.mp3") ' В скобках после play путь к файлу
End Sub
 
'Стоп
Private Sub Command2_Click()
Call mciExecute("close c:\Slow.mp3") ' В скобках после close путь к файлу
End Sub
Добавлено через 3 минуты
Или при запуске формы:
Visual Basic
1
2
3
4
5
6
7
8
Private Sub Form_Load()
Call mciExecute("play c:\Slow.mp3") ' В скобках после play путь к файлу
End Sub
 
'Стоп
Private Sub Command1_Click()
Call mciExecute("close c:\Slow.mp3") ' В скобках после close путь к файлу
End Sub
0
 Аватар для dzug
695 / 236 / 18
Регистрация: 17.01.2011
Сообщений: 583
Записей в блоге: 1
26.07.2015, 06:03
Можно так:

Visual Basic
1
2
s = "c:\Slow.mp3"
  CreateObject("WScript.Shell").Run s
Это воспроизведение на устройстве по умолчанию..
Можно проигрывать файлы звуковые, видио и т.д.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
27.07.2015, 15:20
Готовые решения и полезные коды на Visual Basic 6.0
0
0 / 0 / 0
Регистрация: 25.07.2015
Сообщений: 9
28.07.2015, 19:25  [ТС]
vasiliw8, Спасибо большое за ответ!
Но выскакивает ошибка:
Sub или Function не определены

И ошибку указывает на (Call mciExecute)
Как решить эту проблему, подскажите?
И что за оператор такой: Call mciExecute?
Извиняюсь, если задаю глупые вопросы. Я совсем зелёный

Добавлено через 13 минут
dzug, Спасибо большое за ответ!
Но выскакивает вот такое сообщение от VB:
Run-time error '-2147024894 (80070002)':
Method 'Run' of object 'IWshShell3' failed
И указывает желтым цветом на:CreateObject("WScript.Shell").Run s
Что бы это могло значить и как это исправить?

Вот код(возможно я неправильно понял вас):
Visual Basic
1
2
3
4
Private Sub Form_Load()
s = "D:\Oleg\Music\Enigma.mp3"
CreateObject("WScript.Shell").Run s
End Sub
Пояснение* при запуске формы должно воспроизводится Enigma.mp3
0
38 / 38 / 16
Регистрация: 04.03.2014
Сообщений: 249
28.07.2015, 19:54
olegosander,
Извините недоглядел, надо так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
 
'Воспроизводим файл
Private Sub Command1_Click()
Call mciExecute("play c:\Slow.mp3") ' В скобках после play путь к файлу
End Sub
 
'Стоп
Private Sub Command2_Click()
Call mciExecute("close c:\Slow.mp3") ' В скобках после close путь к файлу
End Sub
Добавлено через 13 минут
olegosander,
Об этой функции написано здесь: http://vb.narod.ru/koding/stat/vb/11.htm
0
 Аватар для dzug
695 / 236 / 18
Регистрация: 17.01.2011
Сообщений: 583
Записей в блоге: 1
28.07.2015, 21:12
А при чём тут форма, если вы вызываете проигрыватель по умолчанию - например КМ плеер.
Попробуйте вызвать отдельной процедурой:

Visual Basic
1
2
3
4
Sub mmm()
s = "D:\Oleg\Music\Enigma.mp3"
CreateObject("WScript.Shell").Run s
End Sub
0
0 / 0 / 0
Регистрация: 25.07.2015
Сообщений: 9
28.07.2015, 22:22  [ТС]
vasiliw8, Всё равно не получается воспроизвести .mp3
Сделал всё как вы сказали и пишет при нажатии на command1:
Ошибка при инициализации MCI.
Может нужно какое-то дополнение скачать?
Если есть возможность и время скиньте простенькую программу, где при помощи кнопки воспроизводится .mp3 файл.
Заранее благодарствую!

Добавлено через 9 минут
dzug, Не получается.
Это или я что-то не так делаю или не скачано что-то.
Если есть возможность и время скиньте простенькую программу, где при помощи кнопки воспроизводится .mp3 файл.
И еще вопрос что значит строка: CreateObject("WScript.Shell").Run s ?
Буду очень благодарен!
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
28.07.2015, 22:45
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Пробуйте этот вариант:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Option Explicit
    Private Declare Function mciSendString Lib "winmm.dll" _
        Alias "mciSendStringA" _
        (ByVal lpstrCommand As String, _
        ByVal lpstrReturnString As String, _
        ByVal uReturnLength As Long, _
        ByVal hwndCallback As Long) As Long
 
    Dim strAliaS As String
 
    Private Sub Command1_Click()
    Dim lngReturn As Long
    Dim strFile As String
    Dim strType As String
 
        ' make sure all working files in memory are closed
        mciSendString "close all", 0, 0, 0
 
        ' set the file path
        strFile = "C:\Program Files\Microsoft Visual Studio\VB_prog\ClavecinNocean.mp3" ' Ваша музыка!
       
        ' make sure the path is in double quote if it contains spaces
        If InStr(strFile, " ") Then
            strFile = Chr(34) & strFile & Chr(34)
        End If
       
        ' create unique alias
        strAliaS = Right(strFile, 3) & Minute(Now)
       
        ' set the file type being passed
        strType = "MPEGVideo"
       
        ' Open the file
        lngReturn = mciSendString("Open " & strFile & " ALIAS " & strAliaS _
            & " Type " & strType & " WAIT", "", 0, 0)
           
        ' Play the file
        lngReturn = mciSendString("Play " & strAliaS, "", 0, 0)
                       
    End Sub
 
    Private Sub Command2_Click()
    Dim lngReturn As Long
 
        If strAliaS = "" Then
            Exit Sub
        End If
       
        ' Stop the file playing
        lngReturn = mciSendString("Stop " & strAliaS, "", 0, 0)
        ' Remove it from memory
        lngReturn = mciSendString("Close " & strAliaS, "", 0, 0)
       
        ' clear the alias
         strAliaS = ""
    End Sub
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
29.07.2015, 00:42
Можешь попробовать использовать DirectSound или clsTrickMP3Player
0
Заблокирован
04.08.2015, 17:39
А почему сразу <<clsTrickMP3Player>> .. может пользователю дать ссыль на нормальный плэйер, там все понятно разбереться даже ребёнаг..
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
04.08.2015, 17:45
Цитата Сообщение от qwerty000 Посмотреть сообщение
может пользователю дать ссыль на нормальный плэйер
Ну так дал бы
Ну вообщем-то это полноценный mp3-плеер, с подробно описанным функционалом.
0
Заблокирован
04.08.2015, 17:50
Цитата Сообщение от dzug Посмотреть сообщение
CreateObject("WScript.Shell").Run s
Ну совсем прикольно, надо бы пояснить .Run [Файл mp3, mp4, ..и всё что может открываться по умолчанию]) ,1,1

(,1,1) - это режим отображения программы (свёрнытый, норм, развёрн.) И возможность подождать выполнения программы..

вот примерно как надо было рассказать ..
CreateObject("WScript.Shell").Run "C:\Вася пупкин\Super Mario.exe", 1,1 - - - както так..
0
04.08.2015, 17:54

Не по теме:

Ах, Жора :rofl:

0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
09.04.2023, 11:34
Цитата Сообщение от The trick Посмотреть сообщение
попробовать использовать DirectSound или clsTrickMP3Player
Только что проверил оба варианта, в условиях нагрузки программы с циклом. То есть например стоит задача воспроизводить музыку в то время пока выполняет очень сильную нагрузку манипуляции. Чтобы музыка при этом не прерывалась.
Короче ставлю кнопку на форму и пишу Do Loop и всё для имитации серьёзной нагрузки программы. И проверяю будет заикаться звук или нет.

В clsTrickMP3Player.cls при нажатии на кнопку бесконечного цикла, останавливается воспроизведение вообще. Я правда из буфера, а не из файла пробовал. Но воспроизведение звука останавливается СРАЗУ ЖЕ при нажатии на кнопку с кодом Do Loop.

В DirectSound такого недостатка нет. Звук не остановился при зависании программы.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
09.04.2023, 11:47
HackerVlad, этому классу требуется прокачка сообщений, к примеру через DoEvents. Этот класс уже неактуален, т.к. есть способ проиграть через PlaySound. https://www.cyberforum.ru/post15748658.html
1
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
09.04.2023, 11:53
Цитата Сообщение от The trick Посмотреть сообщение
через sndPlaySound
Ты про MP3? Эта же функция только для WAV.
Для MP3 я сейчас попробовал mciSendString всё работает прекрасно воспроизводится без зависания или остановки музыки при нажатии на кнопку Do Loop

Добавлено через 2 минуты
Цитата Сообщение от The trick Посмотреть сообщение
Этот класс уже неактуален
Я только им всегда и пользовался. Так как только он позволял играть звук из буфера, я зашивал звуки в ресурсы EXE, поэтому.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
09.04.2023, 11:53
HackerVlad, PlaySound играет любой wav, в том числе и сжатый. wav - это RIFF файл, который может содержать и данные сжатые с помощью mpeg layer 3 кодека. Если тебе нужно воспроизведение из файла, а не из буфера в памяти, то через mci можно напрямую mp3 проиграть.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
09.04.2023, 11:56
Моя простая задача воспроизвести MP3 из буфера из ресурса короче и чтобы звук не останавливался если программа начнёт зависать.

Добавлено через 2 минуты
Цитата Сообщение от The trick Посмотреть сообщение
PlaySound
и как же ты при помощи функции sndPlaySound будешь воспроизовдить MP3 мне интересно)
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
09.04.2023, 11:58
Просто оберни свой mp3 в Riff контейнер (см пример что выше привел) и передавай его функции PlaySound. Я не за компом, но если никто не сделает пример, вечером скину.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.04.2023, 11:58
Помогаю со студенческими работами здесь

Как воспроизвести MP3 файл по ссылке?
Здравствуйте! Имеется ссылка на mp3 файл &quot;http://sait.ru/file.mp3&quot;. Нужно сделать, что бы по нажатию на кнопку этот файл...

Как воспроизвести стандартными средствами mp3 файл
Как воспроизвести стандартными средствами mp3 файл в python. Без разных сторонних модулей, просто звук mp3.

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

Как воспроизвести mp3 файл с winmm.dll
Уважаемые посетители уважаемого мною ресурса cyberforum.ru не затруднит ли Вас моя просьба оказать мне помощь? Мне необходимо с помощью...

Как воспроизвести звуковой файл (wav или mp3)
Знаю про PLAY И SOUND,но это пищание со спикера пилит по мозгам , хотелось бы вывод собственно на колонки с файлов.


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru