Что нового

Создание звукового канала, воспроизведение в нём звуков и запись

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
Как создать звуковой канал? Чтобы потом в нём воспроизводить звуки и записывать :stars:


Добавлено:
Сообщение автоматически объединено:

Аууу люди
 

damien2008

Осваивающий
Сообщения
178
Репутация
34
Автор
_Lexa98_

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
damien2008
Я видел это, но мне нужна запись звуков которые издает канал (созданный)


Добавлено:
Сообщение автоматически объединено:

Вот нашёл: http://www.autoitscript.com/forum/topic/86639-audiorecorder-mp3oggwav-bassdll/
Только из этого нужно выковырять запись
 

Arei

Скриптер
Сообщения
938
Репутация
115
тебе просто нужно записать звук микрофона в файл?
 
Автор
_Lexa98_

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
Arei [?]
не микрофона, а всего звука


Добавлено:
Сообщение автоматически объединено:

С воспроизведением через bass.dll разобрался:
Код:
#include <Bass.au3>
#include <BassConstants.au3>
_BASS_Startup(@ScriptDir & "\bass.dll")
_BASS_Init(0, -1, 44100, 0, "")
$file1 = FileReadLine("Sounds.txt", 1)
$hStream1 = _BASS_StreamCreateFile(False, $file1, 0, 0, 0)
_BASS_ChannelPlay($hStream1, True)
Sleep(5000)
_BASS_ChannelStop($hStream1)
_BASS_StreamFree($hStream1)
_BASS_Free()
Exit


Осталось разобраться с записью :smile:
 

Arei

Скриптер
Сообщения
938
Репутация
115
Как это делаю я.
Код:
#include<BassEnc.au3>


$RecHandle = $temp[0]
Global temp, $device, $input, $EncHandle, $RecHandle, $Bitrate = 128, $KHZ = 22050, $temp, $EncState=False

$file = "Размещение файла"
	_BASS_STARTUP()
	_BASS_Encode_STARTUP()
	$basscb_dll = DllOpen(@ScriptDir & "\BASSCB.dll")
	$device = _GetDevices()
	$r = _BASS_RecordInit($device)
	$input = _GetInputs()
	$temp = DllCall($basscb_dll, "dword", "RecordStart", "dword", $KHZ, "dword", 1, "dword", _makelong($BASS_SAMPLE_FX, 10))

	$EncHandle = _BASS_Encode_Start($RecHandle, $file, $BASS_ENCODE_PCM)
sleep(5000)
       	_BASS_Encode_Stop($EncHandle)
 
Автор
_Lexa98_

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
Arei
При запуске выдаёт:
Код:
Missing separator character after keyword.: 
Global temp, $device, $input, $EncHandle, $RecHandle, $Bitrate = 128, $KHZ = 22050, $temp, $EncState=False 
Global temp^ ERROR
 
Автор
_Lexa98_

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
CreatoR
Я пробовал ставить, выходит такая ошибка:
Код:
Variable used without being declared.:
$RecHandle = $temp[0]
$RecHandle = ^ ERROR
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
_Lexa98_ [?]
выходит такая ошибка
Ну правильно, у Arei каким то образом оно работает, а на самом деле не должно. Нужно удалить строчку на которую ругается проверка.
И ещё там два раза temp, нужно убрать первый.
 

Arei

Скриптер
Сообщения
938
Репутация
115
OffTopic:
Извините, писал поздно в полубреде(при запуске должны лежать рядом файлы bass.dll lame.exe bassenc.dll)
 
Автор
_Lexa98_

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
Arei
Все файлы есть, но при запуске этого:
Код:
#include<BassEnc.au3>


$RecHandle = $temp[0]
Global $temp, $device, $input, $EncHandle, $RecHandle, $Bitrate = 128, $KHZ = 22050, $temp, $EncState=False

$file = @ScriptDir & "file.mp3"
    _BASS_STARTUP()
    _BASS_Encode_STARTUP()
    $basscb_dll = DllOpen(@ScriptDir & "\BASSCB.dll")
    $device = _GetDevices()
    $r = _BASS_RecordInit($device)
    $input = _GetInputs()
    $temp = DllCall($basscb_dll, "dword", "RecordStart", "dword", $KHZ, "dword", 1, "dword", _makelong($BASS_SAMPLE_FX, 10))

    $EncHandle = _BASS_Encode_Start($RecHandle, $file, $BASS_ENCODE_PCM)
sleep(5000)
        _BASS_Encode_Stop($EncHandle)


пишет это:
Код:
Variable used without being declared.:
$RecHandle = $temp[0]
$RecHandle = ^ ERROR
 

Arei

Скриптер
Сообщения
938
Репутация
115
Это ошибка выдаётся, если нету микрофона(в твоём случае он есть) и если не правильно настроен и если у тебя библиотеки старые и не совпадают с теми,что я использовал.
 
Автор
_Lexa98_

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
Arei
Так это с микрофоном?! Я же говорил про звук который колонки издают(в системе) ;)
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Arei
Ну не несите откровенный бред...
Ошибка элементарная - переменная пытается сослаться на необозначенный массив $temp[]
Код:
$RecHandle = $temp[0]

Вот на какой такой $temp[0] он ссылается? И откуда он взялся то вообще?
Сдается мне что должно быть так:

Код:
#include<BassEnc.au3>
Global $temp, $device, $input, $EncHandle, $RecHandle, $Bitrate = 128, $KHZ = 22050, $EncState=False

$file = @ScriptDir & "file.mp3"
    _BASS_STARTUP()
    _BASS_Encode_STARTUP()
    $basscb_dll = DllOpen(@ScriptDir & "\BASSCB.dll")
    $device = _GetDevices()
    $r = _BASS_RecordInit($device)
    $input = _GetInputs()
    $temp = DllCall($basscb_dll, "dword", "RecordStart", "dword", $KHZ, "dword", 1, "dword", _makelong($BASS_SAMPLE_FX, 10))
    $RecHandle = $temp[0]
    $EncHandle = _BASS_Encode_Start($RecHandle, $file, $BASS_ENCODE_PCM)
sleep(5000)
        _BASS_Encode_Stop($EncHandle)
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Arei [?]
Это ошибка выдаётся, если нету микрофона
Таких ошибок быть не должно. Нужно проверять, а в данном случае вообще не использовать $temp т.к переменная ещё не создана.

Откуда библиотека BassEnc.au3?
 
Верх