سؤال

أريد إنشاء "موسيقى" أو من الأفضل إخراج "صوت تنبيه" صغير باستخدام برنامج المجمع هذا:

يلعب:

datei:
.ascii "/dev/dsp"

.globl play
play:
movl $5, %eax
movl $datei, %ebx
movl $1, %ecx
int $0x80
pushl %eax
movl %eax, %ebx
movl $4, %eax
movl 12(%esp), %ecx
movl 8(%esp), %edx
int $0x80

الموسيقى.s:

.globl _start
#.lcomm buffer, 100
buffer:
.byte 0,255,0,255,0,255,0,255,0,255
.byte 0,255,0,255,0,255,0,255,0,255
.byte 0,255,0,255,0,255,0,255,0,255
.byte 0,255,0,255,0,255,0,255,0,255
.byte 0,255,0,255,0,255,0,255,0,255
.byte 0,255,0,255,0,255,0,255,0,255
.byte 0,255,0,255,0,255,0,255,0,255
.byte 0,255,0,255,0,255,0,255,0,255
.byte 0,255,0,255,0,255,0,255,0,255
.byte 0,255,0,255,0,255,0,255,0,255
_start:
pushl $buffer
pushl $100
loop:
call play
jmp loop
movl $1, %eax
movl $0, %ebx
int $128

لقد جمعت كلاً من:

كما music.s -o music.o as play.s -o play.o

وربطهما بـ:

ld play.o music.o -o music

ولكن بعد ذلك سجلت أنه ليس لدي ملف "/dev/dsp". فهل هناك أي شيء مشابه لـ /dev/dsp فيpuleaudio؟

هل كانت مفيدة؟

المحلول

الإرث /dev/dsp لم يتم تمكين الواجهة بشكل افتراضي.

لتقليده، حاول com.padsp (مضمن مع PulseAudio)، أو com.osspd.

وبدلاً من ذلك، قم بإخراج بيانات العينة إلى stdout وتوجيهها إلى aplay.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top