Имя: Пароль:
1C
 
аудио в 1с
0 viktorovichvadim
 
08.10.10
12:32
Существует ли вк для 1с по работе с аудио-файлами?
Стоит простая задача. Есть файлы, которые необходимо проигрывать в определенное время, но не целиком, а скажем с 3 по 5 секунду.
1 ДенисЧ
 
08.10.10
12:35
КомандаСистемы("start my.wav");

:-)
2 viktorovichvadim
 
08.10.10
12:39
(1) "скажем с 3 по 5 секунду" -не работает.
3 almar
 
08.10.10
12:40
(0) Файл в студию!
4 viktorovichvadim
 
08.10.10
12:46
нормальных ответов не предвидится?
5 H A D G E H O G s
 
08.10.10
12:47
Такой ВК процентов 90 - нет.
Нооо, все в твоих руках, автор!
6 Doss
 
08.10.10
12:47
Не существует
7 almar
 
08.10.10
12:47
(4) Просто любопытно - для чего это может быть нужно? Я не могу себе представить, объясни
8 FN
 
08.10.10
12:49
задача не такая уж и простая.
Как вариант - открыть по Оле какойнить медиаплеер, установить громкость в 0, запустить файл, подождать 2 секунды, установить громкость в 100%, подождать 3 секунды, остановить воспроизведение.
9 H A D G E H O G s
 
08.10.10
12:52
374-881-272
10 luns
 
08.10.10
12:56
(0) файлы каждый раз разные?
если да, то это медиатека на 1с, т.е. извращение.
если нет, то можно заранее нарезать кусочки. потом (1)
11 le_
 
08.10.10
12:58
А обрезать файл и оставить только с 3 по 5 сек. нельзя? )


Пример использования MPC из VBS (в 1С переносимо на 100%):

Set WMPlayer = New WMPlayerClass

Dim FilePath

'/// Так же можно указать URl - ссылку на файл в интернете
FilePath = "C:\WINDOWS\Media\chimes.wav"

'/// Открываем ресурс
WMPlayer.OpenMedia FilePath

'/// Выводим длительность файла
msgbox "Длительность файла: " & WMPlayer.CurrentMedia.DurationString,vbInformation,"WMPlayerClass"

'/// проверка изменения громкости
msgbox "Сейчас будет произведена проверка изменения громкости звука. Эффект эхо. 100% 50% 10%"
WMPlayer.Settings.Volume = 100
WMPlayer.Play
WMPlayer.Settings.Volume = 50
WMPlayer.Play
WMPlayer.Settings.Volume = 10
WMPlayer.Play

'/// проверка изменения баланса
MsgBox "Сейчас будет произведена проверка баланса. (левого и правого динамика)",vbInformation,"WMPlayerClass"
WMPlayer.Settings.Volume = 100
WMPlayer.Settings.Balance = -100
WMPlayer.Play
WMPlayer.Settings.Balance = 100
WMPlayer.Play

MsgBox "Проверка завершена.",vbInformation,"WMPlayerClass"

'/// Класс проигрывателя
Class WMPlayerClass
   '/// Переменная для хранения ссылки на объект плеера
   Dim WMPlayer
   Private Sub Class_Initialize()
       Set WMPlayer = CreateObject("WMPlayer.OCX")
       WMPlayer.settings.autoStart = False
       WMPlayer.settings.enableErrorDialogs = False
   End Sub

   '/// Свойство возвращает ссылку на объект настроек плеера
   Public Property Get Settings
       Set Settings = WMPlayer.Settings
   End Property

   '/// Метод подключения к ресурсу
   Function OpenMedia(URL)
       '/// Несколько из констант состояния открытия
       Const wmposMediaLoading = 11
       Const wmposMediaLocating = 9
       Const wmposPlaylistOpenNoMedia = 6
       Const wmposMediaOpen = 13
       Const wmposPlaylistOpening = 5
       Const wmposOpeningUnknownURL = 21
       Const wmposUndefined = 0

       '/// Для корректного получения данных о содержимом, нужно открыть ресурс.
       WMPlayer.URL = URL
       '/// Убираем звук        
       WMPlayer.settings.mute=true
       '/// Запускаем на проигрывание
       WMPlayer.controls.Play
       '/// Ждём состояния открытия файла. Если файл открыть не удалось вернётся wmposPlaylistOpenNoMedia
       Do
           WScript.Sleep 10
       Loop Until WMPlayer.OpenState = wmposMediaOpen or WMPlayer.OpenState=wmposPlaylistOpenNoMedia
       '/// Останавливаем проигрывание
       WMPlayer.controls.Stop
       '/// Возвращаем звук
       WMPlayer.settings.mute=false
   End Function

   '/// Свойство возвращает ссылку на параметры открытого файла
   Public Property Get CurrentMedia
       Set CurrentMedia = WMPlayer.CurrentMedia
   End Property

   '/// Метод запуска проигрывания
   Function Play()
       WMPlayer.Controls.Play
       '/// Ожидаем окончания проигрывания (ждём пока плеер не перейдёт в состояние остановки)
       Do
           WScript.Sleep 100
       Loop Until WMPlayer.playState = 1
   End Function
End Class
12 le_
 
08.10.10
13:54
+ (11) Для 1С:

Процедура КнопкаСформироватьНажатие(Кнопка)
   Перем FilePath;
   FilePath = "C:\WINDOWS\Media\chimes.wav";
   WMPlayer = Новый COMObject("WMPlayer.OCX");
   WMPlayer.settings.autoStart = Ложь;
   WMPlayer.settings.enableErrorDialogs = Ложь;

   WMPlayer.URL = FilePath;
   WMPlayer.Settings.Volume = 100;
   WMPlayer.controls.Play();
КонецПроцедуры

(0) Перемотку, и т.п. тоже можно сделать.
Ошибка? Это не ошибка, это системная функция.