Re: how to play 16k audio file

Dmitriy Korovkin <[email protected]>
Newsgroups gmane.comp.handhelds.opie.devel
Message-ID <[email protected]>
Dear Ywlee,
Thanks, I'll take a try.

Dmitriy



[email protected] wrote:

>Dear Korovkin,
>
>Please find attached hello_16k_mono.pcm and 
>simplay.c for C example.
>
>#compile
>gcc simplay.c -o simplay
>
>#test
>simplay hello_16k_mono.pcm
>
>This example is not working under opie 0.82.
>If I modify line 32, and 33 to be
>	nSampleRate = 16000;
>	nChannels   = 1;
>->
>	nSampleRate = 48000;
>	nChannels   = 2;
>
>It can play sampling rate 48000 stereo pcm file.
>I am wondering if I had to install extra drivers
>to make 16000 mono sound file able to play.
>
>Have a nice day
>Thanks and Best regards,
>
>Alan
>
>--- Dmitriy Korovkin <[email protected]> 說:
>
>  
>
>>Alan, will you attach a sound file and describe how
>>we can reproduce the 
>>problem you see, please.
>>
>>Dmitriy
>>
>>
>>
>>[email protected] wrote:
>>
>>    
>>
>>>Hi all,
>>>
>>>Under opie 0.82,
>>>I found I can only configure /dev/audio
>>>to be 48000 sampling rate with stereo playback.
>>>
>>>Do I need more driver or patch to make
>>>16000 mono audio to play?
>>>
>>>Best regards,
>>>
>>>Alan
>>>
>>>___________________________________________________
>>>      
>>>
>>>最新版 Yahoo!奇摩即時通訊
>>>      
>>>
>>7.0,免費網路電話任你打! 
>>    
>>
>>>http://messenger.yahoo.com.tw/
>>>_______________________________________________
>>>
>>>      
>>>
>>http://opie.handhelds.org/cgi-bin/moin.cgi/DeveloperWikiIndex
>>    
>>
>>>Opie-devel mailing list
>>>[email protected]
>>>https://handhelds.org/mailman/listinfo/opie-devel
>>>
>>> 
>>>
>>>      
>>>
>>    
>>
>
>
>___________________________________________________ 
> 最新版 Yahoo!奇摩即時通訊 7.0,免費網路電話任你打! 
> http://messenger.yahoo.com.tw/
>
>------------------------------------------------------------------------
>
>#include <stdio.h>
>#include <unistd.h>
>#include <stdlib.h>
>#include <sys/ioctl.h>
>#include <stdlib.h>
>#include <fcntl.h>
>#include <signal.h>
>#include <sys/soundcard.h>
>#include <string.h>
>#include <wait.h>
>
>#define BUFFER_SIZE 320000 //10 seconds for 16k,16bit
>
>int main(int argc, char **argv)
>{
>	int nDevice, nFormat, nSampleRate, nChannels, nLen, nClose;
>	char szBuffer[BUFFER_SIZE];
>	FILE *fp;
>
>	if (argc<2) {
>		printf("usage: %s play_file\n", argv[0]);
>		return -1;
>	}
>
>	//playback
>	//open device
>	nDevice = open("/dev/dsp", O_WRONLY, 0);
>	printf("device open: %d\n",nDevice);
>	
>	//io setting
>	nFormat  = AFMT_S16_LE;
>	nSampleRate = 16000;
>	nChannels   = 1;
>	printf("set record format : %d\n",ioctl(nDevice, SNDCTL_DSP_SETFMT, &nFormat));
>	printf("set sample rate : %d\n",ioctl(nDevice, SNDCTL_DSP_SPEED, &nSampleRate));
>	printf("set channels : %d\n",ioctl(nDevice, SNDCTL_DSP_STEREO, &nChannels));
>
>	//read data
>	fp = fopen(argv[1], "rb");
>	printf("playback ...\n");
>	while ( ( nLen=fread(szBuffer, sizeof(char), sizeof(szBuffer), fp) )>0 ) {
>		printf("play data : %d\n",write(nDevice, szBuffer, nLen));
>	}
>	fclose(fp);
>	
>	//close device
>	nClose = 0;
>	printf("set close : %d\n",ioctl(nDevice, SNDCTL_DSP_SYNC, &nClose));
>	printf("device close: %d\n",close(nDevice));
>	
>	return 0;
>}
>  
>

_______________________________________________

http://opie.handhelds.org/cgi-bin/moin.cgi/DeveloperWikiIndex

Opie-devel mailing list
[email protected]
https://handhelds.org/mailman/listinfo/opie-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.