Unix Programming - why there is no sound for the demo prgrame of alsa lib

This is Interesting: Free IT Magazines  
Home > Archive > Unix Programming > March 2007 > why there is no sound for the demo prgrame of alsa lib





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author why there is no sound for the demo prgrame of alsa lib
DaVinci

2007-03-18, 1:20 am

http://www.alsa-project.org/alsa-do...8c-example.html

0001 /

00002 * This extra small demo sends a random samples to your
speakers.
00003 */
00004
00005 #include "../include/asoundlib.h"
00006
00007 static char *device = "default"; /*
playback device */
00008
00009 snd_output_t *output = NULL;
00010 unsigned char buffer[16*1024]; /* some
random data */
00011
00012 int main(void)
00013 {
00014 int err;
00015 unsigned int i;
00016 snd_pcm_t *handle;
00017 snd_pcm_sframes_t frames;
00018
00019 for (i = 0; i < sizeof(buffer); i++)
00020 buffer = random() & 0xff;
00021
00022 if ((err = snd_pcm_open(&handle, device,
SND_PCM_STREAM_PLAYBACK, 0)) < 0) {
00023 printf("Playback open error: %s\n",
snd_strerror(err));
00024 exit(EXIT_FAILURE);
00025 }
00026 if ((err = snd_pcm_set_params(handle,
00027 SND_PCM_FORMAT_U8,
00028
SND_PCM_ACCESS_RW_INTERLEAVED,
00029 1,
00030 48000,
00031 1,
00032 500000)) < 0) { /*
0.5sec */
00033 printf("Playback open error: %s\n",
snd_strerror(err));
00034 exit(EXIT_FAILURE);
00035 }
00036
00037 for (i = 0; i < 16; i++) {
00038 frames = snd_pcm_writei(handle, buffer,
sizeof(buffer));
00039 if (frames < 0)
00040 frames = snd_pcm_recover(handle, frames,
0);
00041 if (frames < 0) {
00042 printf("snd_pcm_writei failed: %s\n",
snd_strerror(err));
00043 break;
00044 }
00045 if (frames > 0 && frames < (long)sizeof(buffer))
00046 printf("Short write (expected %li, wrote
%li)\n", (long)sizeof(buffer), frames);
00047 }
00048
00049 snd_pcm_close(handle);
00050 return 0;a
thanks very much.

DaVinci

2007-03-18, 1:21 pm

On 3=D4=C218=C8=D5, =CF=C2=CE=E71=CA=B124=B7=D6, "DaVinci" <apple.davi...@g=
mail.com> wrote:
> http://www.alsa-project.org/alsa-do...__min_8c-exa...
>
> 0001 /
>
> 00002 * This extra small demo sends a random samples to your
> speakers.
> 00003 */
> 00004
> 00005 #include "../include/asoundlib.h"
> 00006
> 00007 static char *device =3D "default"; /*
> playback device */
> 00008
> 00009 snd_output_t *output =3D NULL;
> 00010 unsigned char buffer[16*1024]; /* some
> random data */
> 00011
> 00012 int main(void)
> 00013 {
> 00014 int err;
> 00015 unsigned int i;
> 00016 snd_pcm_t *handle;
> 00017 snd_pcm_sframes_t frames;
> 00018
> 00019 for (i =3D 0; i < sizeof(buffer); i++)
> 00020 buffer =3D random() & 0xff;
> 00021
> 00022 if ((err =3D snd_pcm_open(&handle, device,
> SND_PCM_STREAM_PLAYBACK, 0)) < 0) {
> 00023 printf("Playback open error: %s\n",
> snd_strerror(err));
> 00024 exit(EXIT_FAILURE);
> 00025 }
> 00026 if ((err =3D snd_pcm_set_params(handle,
> 00027 SND_PCM_FORMAT_U8,
> 00028
> SND_PCM_ACCESS_RW_INTERLEAVED,
> 00029 1,
> 00030 48000,
> 00031 1,
> 00032 500000)) < 0) { /*
> 0.5sec */
> 00033 printf("Playback open error: %s\n",
> snd_strerror(err));
> 00034 exit(EXIT_FAILURE);
> 00035 }
> 00036
> 00037 for (i =3D 0; i < 16; i++) {
> 00038 frames =3D snd_pcm_writei(handle, buffer,
> sizeof(buffer));
> 00039 if (frames < 0)
> 00040 frames =3D snd_pcm_recover(handle, frames,
> 0);
> 00041 if (frames < 0) {
> 00042 printf("snd_pcm_writei failed: %s\n",
> snd_strerror(err));
> 00043 break;
> 00044 }
> 00045 if (frames > 0 && frames < (long)sizeof(buffer))
> 00046 printf("Short write (expected %li, wrote
> %li)\n", (long)sizeof(buffer), frames);
> 00047 }
> 00048
> 00049 snd_pcm_close(handle);
> 00050 return 0;a
> thanks very much.


I have solved the problem .Thanks.

Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com