On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение
администратор




Пост N: 2983
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.04.13 13:14. Заголовок: Как проиграть WAV файл ?


функции tone уже маловато ;)

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 25 , стр: 1 2 All [только новые]


moderator




Пост N: 463
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.04.13 13:35. Заголовок: Если использовать би..


Если использовать библиотеку CallDLL (есть в поставке минигуи), то можно так:

/* 
* MiniGUI DLL Demo
*/

#include "minigui.ch"

Procedure Main

DEFINE WINDOW Win_1 ;
AT 0,0 ;
WIDTH 400 ;
HEIGHT 400 ;
TITLE 'Hello World!' ;
MAIN ;
ON RELEASE UnloadAllDll()

DEFINE MAIN MENU
DEFINE POPUP 'Test'
MENUITEM 'Play Sound' ACTION PlaySound ()
END POPUP
END MENU

END WINDOW

ACTIVATE WINDOW Win_1

Return


Procedure PlaySound

// the number of waveform-audio output devices present in the system
If CallDll32 ( "waveOutGetNumDevs" , "WINMM.DLL" ) > 0

CallDll32 ( "sndPlaySoundA" , "WINMM.DLL" , "sample.wav" , 0 )

EndIf

Return


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2984
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.04.13 13:45. Заголовок: gfilatov2002 Спасиб..


gfilatov2002
Спасибо , идею понял. Заюзал hbmisc

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 810
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 10.04.13 13:54. Заголовок: в библиотеке hbwin е..


в библиотеке hbwin есть ф-я WAPI_PLAYSOUND, может ее попробовать?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2985
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.04.13 13:56. Заголовок: gfilatov2002 За что..


gfilatov2002
За что отвечает последний параметр ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2986
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.04.13 13:59. Заголовок: AlexMyr пишет: WAPI..


AlexMyr пишет:

 цитата:
WAPI_PLAYSOUND


в с я не силен а посему мне не ясны параметры этой функции

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 811
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 10.04.13 14:03. Заголовок: только что проверил,..


только что проверил, работает, только подцепить библиотеку hbwin

func main
WAPI_PLAYSOUND("ALSNDMGR.WAV")
return

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2987
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.04.13 14:11. Заголовок: AlexMyr Да работает..


AlexMyr
Да работает. Спасибо

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 464
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.04.13 16:12. Заголовок: Dima пишет: За что ..


Dima пишет:

 цитата:
За что отвечает последний параметр ?



BOOL sndPlaySound(LPCSTR lpszSoundFile, UINT wFlags);

Через параметр lpszSoundFile этой функции можно передать путь к wav-файлу.

Параметр wFlags определяет способ проигрывания звукового фрагмента. Используются следующие значения (некоторые из них можно комбинировать при помощи операции ИЛИ):
Значение Описание
SND_SYNC Синхронный режим работы. Функция sndPlaySound вернет управление только после завершения проигрывания звукового фрагмента
SND_ASYNC Асинхронный режим работы. Функция вернет управление немедленно, проигрывание звукового фрагмента будет выполняться в фоновом режиме параллельно с работой приложения
SND_NODEFAULT Если указанный файл не найден, функция "тихо" возвращает управление, не проигрывая никаких звуков. Если же этот флаг не указан, и файл не найден, будет проигран стандартный системный звук, определенный в строке SystemDefault раздела [sound] файла win.ini. А если и это невозможно, функция не будет ничего проигрывать и вернет значение FALSE
SND_MEMORY Это значение используется для проигрывания звуковых файлов, загруженных в оперативную память, например, из ресурсов приложения
SND_LOOP Если указано значение SND_ASYNC, проигрывание звукового фрагмента будет зациклено. Для того чтобы остановить проигрывание, необходимо вызвать функцию sndPlaySound, указав ей в качестве параметра lpszSoundFile значение NULL
SND_NOSTOP При указании этого значения функция проверяет, выполняется ли в настоящий момент проигрывание фрагмента. Если да, функция возвращает значение FALSE



Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2990
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.04.13 17:24. Заголовок: gfilatov2002 А MP3 ..


gfilatov2002
А MP3 файлы как проиграть ?

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 465
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.04.13 17:46. Заголовок: Dima пишет: А MP3 ф..


Dima пишет:

 цитата:
А MP3 файлы как проиграть ?


Посмотри в сторону WinAPI-функции mciSendString:

Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2991
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.04.13 18:18. Заголовок: gfilatov2002 Спасиб..


gfilatov2002
Спасибо , работает.
 
proc main

mciSendString("play 14.mp3 wait",,0,)

return

#pragma BEGINDUMP
#include <hbapi.h>
#include <windows.h>

HB_FUNC ( MCISENDSTRING )
{

DWORD nError;

nError = mciSendString( hb_parc( 1 ),
hb_parc( 2 ),
hb_parcsiz( 2 ),
(HWND) hb_parnl( 3 ) ); // при сборке ворнинг вот такой Warning W8075 s.prg 21: Suspicious pointer conversion in function HB_FUN_MCISENDSTRING

hb_retni( nError );

}
#PRAGMA ENDDUMP



Нужно покопать еще насчет параметров. Нет ли правильной ссылочки ?

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 466
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.04.13 21:10. Заголовок: Dima пишет: Нужно п..


Dima пишет:

 цитата:
Нужно покопать еще насчет параметров



 цитата:
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
mciSendString посылает строку команды устройству ИНТЕРФЕЙСА УПРАВЛЕНИЯ СРЕДОЙ ПЕРЕДАЧИ ДАННЫХ(MCI). Устройство, которому команда послана, определено в строке команды.Строки команды, используемые с этой функцией могут исполнять почти любую задачу, необходимую для использования устройства мультимедиа, установленного на компьютере. MciSendString обеспечивает относительно простой способ исполнять операции с мультимедиа.

Возвращаемое значение
В успешном случае функция возвращает 0. В случае ошибки, функция возвращает код ошибки MCI отличный от нуля. Чтобы получить текстовое описание ошибки, используйте функцию mciGetErrorString.

lpstrCommand
Указатель на строку, которая определяет строку команды MCI.
lpstrReturnString
Для строк команды,возвращаюх информацию, эта строка получает вывод данных командой. Эта строка должна первоначально быть по крайней мере в длиной 128 символов, долго чтобы получить строку. Любая информация, помещенная в эту строку будет с нулевым символом в конце. Если строка команды не возвращает информацию, этот параметр игнорируется. Если никакой информации возвращения не требуется, этот параметр может быть NULL
uReturnLength
Размер в символах, буфера возвращений, указанного lpstrReturnString
hwndCallback
Если "уведомляющийся" флажок строки команды определен, это - дескриптор окна, чтобы получить сообщение MM_MCINOTIFY , когда команда завершается, независимо от того, выполнена ли она или потерпело неудачу.



Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2992
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.04.13 22:22. Заголовок: gfilatov2002 Спасиб..


gfilatov2002
Спасибо конечно , но чел который в языке С не шарит ни чего не поймет. Как для своих можно проще
объяснить ?
Какие параметры и тд и тп. Если напряг , буду сам ковырять и убивать кучу времени.

PS
И да в С я не шарю. Грустно но не шарю.

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 467
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.04.13 23:11. Заголовок: Dima пишет: Как для..


Dima пишет:

 цитата:
Как для своих можно проще объяснить ?


Выкладываю рабочий класс TMP3 (файл tmp3.prg):
Скрытый текст


А вот пример его использования в Минигуи:

 цитата:
#include "minigui.ch" 

Set Proc To tmp3.prg

PROCEDURE Main()

LOCAL oMp3 := TMp3():New()

define window wndMain ;
title "MP3 Test" ;
main

define main menu

define popup "&Test MP3"

menuitem " Open MP3 file and device" ;
action {|| if( !oMp3:lOpened, ;
oMp3:Open( getFile( { { "MP3", "*.mp3" } }, "Select File", CurDir(), FALSE, TRUE ) ), ) }
menuitem " oMp3:Status()" ;
action {|| if( oMp3:lOpened, MsgInfo( oMp3:Status() ), ) }
menuitem " oMp3:Play()" ;
action {|| if( oMp3:lOpened, oMp3:Play(), ) }
menuitem " oMp3:Pause()" ;
action {|| if( oMp3:lOpened, oMp3:Pause(), ) }
menuitem " oMp3:Stop()" ;
action {|| if( oMp3:lOpened, oMp3:Stop(), ) }
menuitem " oMp3:Close()" ;
action {|| if( oMp3:lOpened, oMp3:Close(), ) }
separator
menuitem " Exit" ;
action wndMain.Release()
end popup

end menu

end window

activate window wndMain

RETURN


Если будут непонятки - спрашивай

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2993
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.04.13 09:09. Заголовок: gfilatov2002 Вроде ..


gfilatov2002
Вроде все ясно. Спасибо !

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2995
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.04.13 09:42. Заголовок: gfilatov2002 Все та..


gfilatov2002
Все таки есть вопрос. Терминал GTWIN
Как заставить MP3 играть в фоне ?

Короткий пример
 
proc main

mciSendString("open 14.mp3 type mpegvideo alias MediaFile")
mciSendString("play MediaFile wait") // пока полностью не проиграет управление программе не передается
//оно и понятно так как параметр WAIT


return


#pragma BEGINDUMP
#include <hbapi.h>
#include <windows.h>

HB_FUNC ( MCISENDSTRING )
{

DWORD nError;

nError = mciSendString( hb_parc( 1 ),
hb_parc( 2 ),
hb_parcsiz( 2 ),
(HWND) hb_parnl( 3 ) );

hb_retni( nError );

}
#PRAGMA ENDDUMP




Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 468
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 11.04.13 10:36. Заголовок: Dima пишет: Как зас..


Dima пишет:

 цитата:
Как заставить MP3 играть в фоне ?


Попробуй использовать команду play без указания wait:

mciSendString("play MediaFile")

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2997
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.04.13 10:45. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
mciSendString("play MediaFile")


Да уже понял. Спасибо. Вот так надо.
mciSendString("play MediaFile")
wait // что то делаем свое ;)

или так можно
mciSendString("play MediaFile notify" )
wait // что то делаем свое ;)


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 136
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 19.08.13 16:50. Заголовок: Подскажите плиз начи..


Подскажите плиз начинающему - какими способами затянуть mp3/wav в готовый exe (понимаю, что как-то через ресурс, как наподобие с иконкам).
И как его оттуда озвучить ?

Спасибо.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 163
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 20.08.13 23:37. Заголовок: Sergy пишет: Подска..


Sergy пишет:

 цитата:
Подскажите плиз начинающему - какими способами затянуть mp3/wav в готовый exe (понимаю, что как-то через ресурс, как наподобие с иконкам).
И как его оттуда озвучить ?


Очень хочется порадовать юзеров новой программой (внутри есть встроенный обмен сообщениями). Подскажите плиз - как...




Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 25 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 24
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет