我正在尝试做什么:在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方法作为接收器。