读取C中的音频文件并通过蓝牙转发以在Android音频轨道中播放

时间:2013-06-28 10:22:55

标签: android bluetooth audio-streaming rfcomm

我正在尝试做什么:在C(linux)中读取.wav文件,通过蓝牙rfcomm套接字转发缓冲区数据,在android中接收缓冲区,然后给Audio Track播放缓冲区。(需要Android应用程序来播放音频流) 代码:

用于创建rfcomm套接字的{C-code Ccode for rfcomm socket

2 - 转发数据的C代码

    FILE *fp;
    char buffer[1024];
    fp = fopen("feelgood.wav","r"); //for audio track use reading .wav file
    while(i=fread(buffer, sizeof(buffer),1, fp) > 0){
        status=write(bluetooth_socket, buffer,strlen(buffer));
        usleep(100000);
    } 

3-用于从套接字读取的Android代码是这样的:

//Audio Track initialization for Streaming
AudioTrack track = new AudioTrack(AudioManager.STREAM_MUSIC,44100,AudioFormat.CHANNEL_OUT_MONO,AudioFormat.ENCODING_PCM_8BIT,10000, AudioTrack.MODE_STREAM);
track.play();

//Receiving data from socket
byte[] buffer = new byte[1024];
int bytes;
bytes = socket.getInputStream().read(buffer);
track.write(buffer, 0,bytes);

问题:实际问题我没有理解为什么音轨没有正常播放(听到有很多噪音的音频音乐)。如何用这种方法在Android应用程序部分上听无噪音音频。有音轨执行问题或缓冲问题。 相关问题(Receive audio via Bluetooth in Android)但无法在Android上遵循a2dp方法作为接收器。

0 个答案:

没有答案