2016-05-16 81 views
0

我正在构建一个android应用程序。该应用程序的功能是它通过蓝牙将音频文件从一台设备传输到另一台设备。从大块字节播放MP3时MediaPlayer崩溃?

我试图在媒体播放器中播放文件块。意味着接收者以块的形式接收音频文件,播放该文件并将下一个块添加到现有文件中。

我正在将大块字节(音频文件)发送到其他设备,并在其中添加后续块。在接收端播放这些块。

不过是发出我的应用程序崩溃并收到此错误:

错误:MediaPlayer的准备失败:状态=为0x1

这里是我的代码:

这是我的代码,其中当设备配对时,我发送音频文件,

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

我的错误日志是:java.io.IOException:准备失败:状态= 0x1 –

+0

基本上我试图通过蓝牙创建音频流应用程序,请你分享一些资源或教程来实现这一点。我使用Google搜索,但没有找到任何有用的东西。 –

回答

0

这个错误的原因

  1. 文件路径不正确或URI不存在!
  2. 缺少权限
  3. 媒体文件格式不兼容
+0

谢谢!尼拉夫,请你检查我的上面的代码,并纠正我的代码,我错了。 –