我正在构建一个Android应用程序。应用程序功能是通过蓝牙将音频文件从一个设备传输到另一个设备。
我正试图在媒体播放器中以块的形式播放该文件。表示接收方以块的形式接收音频文件,播放此文件并将下一个块添加到现有文件中。
我正在将字节块(音频文件)发送到另一台设备,并在其中添加后续块。在接收方播放这些块。
但问题是我的应用程序崩溃并收到此错误:
错误: MediaPlayer准备失败:状态= 0x1
这是我的代码:
这是我的代码,我在设备配对时发送audiofile,
InputStream inStream = getResources().openRawResource(R.raw.comman);
byte[] music = inputStreamToByteArray(inStream);
// Invoke client thread to send
message = new Message();
message.obj = music;
MainApplication.clientThread.incomingHandler.sendMessage(message);
这是将数据转换为块的代码:
byte[] buffer = new byte[Constants.CHUNK_SIZE];
Log.v(TAG, "Waiting for data. Expecting " + progressData.remainingSize + " more bytes.");
int bytesRead = inputStream.read(buffer);
dataOutputStream.write(buffer, 0, bytesRead);
progressData.remainingSize -= bytesRead;
readBuf = buffer;
这是我收到大块字节的代码,
File tempMp3 = File.createTempFile("kurchina", "mp3", getCacheDir());
tempMp3.deleteOnExit();
FileOutputStream fos = new FileOutputStream(tempMp3);
fos.write(mp3SoundByteArray); //mp3SoundByteArray is byte chunks
fos.close();
MediaPlayer mediaPlayer = new MediaPlayer();
FileInputStream fis = new FileInputStream(tempMp3);
FileDescriptor fileDescriptor = fis.getFD();
mediaPlayer.reset();
mediaPlayer.setDataSource(fileDescriptor);
mediaPlayer.prepare(); // here my app is crashing
mediaPlayer.start();
答案 0 :(得分:0)
此错误的原因