Страницы: 1 2 След.
RSS
Не проигрывается звук из файлов *.mp4
 
Здравствуйте.
При запуске файла - проигрывается звук из файла *.mp3 (адрес которого указан в ячейке AO1)
Но когда в ячейке AO1 записан файл с расширением *.mp4 - то звук уже не воспроизводится, вместо этого выводится ошибка:
"Ошибка при инициализации MCI. Указанное устройство не открыто или не опознается интерфейсом MCI"

Как сделать так, чтобы макрос при открытии проигрывал звук из файлов  *.mp4 тоже ?

Файл огромный, приложить его сюда не могу.
Макрос на текущий момент выглядит так:
Код
#If VBA7 Then
  Private Declare PtrSafe Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
  Private Declare PtrSafe Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
#Else
  Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
  Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
#End If


Sub Play1() 
Call mciExecute("open " + Chr$(34) + Range("AO1") + Chr$(34) + " alias _mysound_")
Call mciExecute("play _mysound_")
'Call mciExecute("play _mysound_ repeat")
End Sub

Sub Stop1()
Call mciExecute("close _mysound_")
End Sub
Если люди не научатся помогать друг другу, то род человеческий исчезнет с лица земли.
Вальтер Скотт
 
Заберитесь в mciExecute, или (и) PlaySound, и объясните винде, что mp4 тоже нужно знать!
 
RAN, подскажите - что изменить, чтобы макрос при открытии проигрывал звук из файлов  *.mp4 тоже ?
Если люди не научатся помогать друг другу, то род человеческий исчезнет с лица земли.
Вальтер Скотт
 
Красноглазый Пиркаф, Используйте форму с WindowsMediaPlayer  
 
Или так:
Код
Shell "cmd /c start wmplayer """ & Range("AO1") & """"
Владимир
 
sokol92, у меня на момент открытия файла уже запущен wmp, поэтому данное решение не подходит.
Этот скрипт просто закрывает имеющийся WMP и открывает новый.

Нужно проиграть файл единократно - внутри экселя, не открывая стороннюю программу WMPlayer
Если люди не научатся помогать друг другу, то род человеческий исчезнет с лица земли.
Вальтер Скотт
 
Красноглазый Пиркаф,  а насколько важно именно mp4? Почему нельзя переконвертировать в другой поддерживаемый формат  и не мучиться?
 
Юрий М, нет, нужно именно mp4, потому что их - несколько тысяч.
Если люди не научатся помогать друг другу, то род человеческий исчезнет с лица земли.
Вальтер Скотт
 
Странная хотелка - просмотреть прослушать несколько тысяч файлов именно при помощи Excel ))
 
Юрий М, я их не смотрю - речь о звуке идет.
Если люди не научатся помогать друг другу, то род человеческий исчезнет с лица земли.
Вальтер Скотт
 
На wmplayer свет клином не сошелся. Можно вызвать и браузер, например:
Код
 With CreateObject("Shell.Application")
   .ShellExecute "firefox.exe", Range("AO1").Value
 End With
Владимир
 
Отредактировал свой 11, но странностей меньше не стало (
 
sokol92, я не пользуюсь firefox.exe
Речь идет не о браузерах, а о простом проигрывании звука.
Если люди не научатся помогать друг другу, то род человеческий исчезнет с лица земли.
Вальтер Скотт
 
"Простое проигрывание звука" *.mp4 осуществляется с помощью (непростой) программы.
Владимир
 
Подскажите - как изменить макрос, чтобы при открытии он проигрывал звук из файлов  *.mp4 тоже ?
Если люди не научатся помогать друг другу, то род человеческий исчезнет с лица земли.
Вальтер Скотт
 
Макрос ничего не проигрывает. В вашем случае, он просит винду воспроизвести файл.
 
RAN, ну в общем речь о том, чтобы воспроизводился звук из mp4 файла. Один звук - видео не нужно.
Если люди не научатся помогать друг другу, то род человеческий исчезнет с лица земли.
Вальтер Скотт
 
Дайте мне небольшой файл для тестирования
 
Юрий М, в смысле - xls или mp4 ?
Если люди не научатся помогать друг другу, то род человеческий исчезнет с лица земли.
Вальтер Скотт
 
4
 
         
Цитата
Андрей Лящук написал:
форму с WindowsMediaPlayer
Изменено: Андрей Лящук - 01.06.2020 04:42:33
 
Юрий М, не дают загрузить файл с mp4
Слишком большой
Если люди не научатся помогать друг другу, то род человеческий исчезнет с лица земли.
Вальтер Скотт
 
Андрей Лящук, не получается запустить форму.
Выдается ошибка:
This application is about to initialize ActiveX controls that be unsafe. If you trust the source of this file? select OK and the controls will be initialized....
Я жму ОК - и ничего не происходит - форма не появляется.
Если люди не научатся помогать друг другу, то род человеческий исчезнет с лица земли.
Вальтер Скотт
 
объект плеера на лист, его скрыть, и передать в него источник.
По вопросам из тем форума, личку не читаю.
 
БМВ, ясно.
А как это сделать макросом ?
Если люди не научатся помогать друг другу, то род человеческий исчезнет с лица земли.
Вальтер Скотт
 
Цитата
Красноглазый Пиркаф написал: нет, нужно именно mp4, потому что их - несколько тысяч.
зачем слушать несколько тысяч MP4 (это ещё сколько же оно весит), когда можно просто сконвертить всё в МР3.....
офтоп
 
Цитата
Wild.Godlike написал:
можно просто сконвертить всё в МР3.
Уже предлагалось.. Авто категорически против )
 
Wild.Godlike, нет, конвертировать ничего не надо.
Надо проиграть - как советовали выше - через скрытый объект WMплеера на листе, передав в него источник.
Если люди не научатся помогать друг другу, то род человеческий исчезнет с лица земли.
Вальтер Скотт
 
Код
Sub play(strFile As String)
With Sheet1.WindowsMediaPlayer1
    .AutoLoad = False
    .Visible = False
    .windowlessVideo = True
    If strFile = "" Then
        .Controls.stop
    Else
        .URL = strFile
        .Controls.play
    End If
End With
End Sub
По вопросам из тем форума, личку не читаю.
 
БМВ, открываю - запустить ничего не могу (хотя видно что на скрытом листе - находится WMPlayer).
Назначить макрос на кнопку не могу - не находит макроса.
Изменено: Красноглазый Пиркаф - 01.06.2020 12:03:28
Если люди не научатся помогать друг другу, то род человеческий исчезнет с лица земли.
Вальтер Скотт
Страницы: 1 2 След.
Наверх