0

私はこの少し複雑な状況で立ち往生しています。私は、Mp3 ファイルを複数のバイト配列に読み込んでいる Android アプリケーションの一部を作成しています。問題は、このバイト配列の数が USB からのテキスト ファイルと各バイト配列のサイズによって決定されることです。抜け道を教えてください。

以下は、Mp3ファイルを読んでいる私のコードです

cxt = ControlUnit.getAppContext();
   try {

       File file = new File("/mnt/media/USBDISK1/IFrame_00.bin");

       input = new BufferedInputStream(new FileInputStream(file));


          //input = cxt.getAssets().open("Maid with the Flaxen Hair.mp3");
          Log.i("TvPlayerFunctionalTestApp", "mp3 file Read from Assests");
   } catch (IOException e) {
          // TODO Auto-generated catch block
          Log.i("TvPlayerFunctionalTestApp", "Error in Opening mp3 File");
          e.printStackTrace();
   }

   try {
          size = input.available();
          Log.i("TvPlayerFunctionalTestApp", "Size of Bin File: "+size);
   } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
   }

try {
          buffer = new byte[AClipTextFileHandler.BufferSize.get(0)];
          input.read(buffer);
   //     input.read(buffer, offset, length);
          Log.i("TvPlayerFunctionalTestApp", "buffer: "+ Arrays.toString(buffer));
          buffer1 = new byte[AClipTextFileHandler.BufferSize.get(1)];
          input.read(buffer1);
          Log.i("TvPlayerFunctionalTestApp", "buffer: "+ Arrays.toString(buffer1));
          StringBuffer stringBuff = new StringBuffer();

       for (byte b:buffer)
       {
          stringBuff.append(String.format("%x", b));
       }
       Log.i("TvPlayerFunctionalTestApp","buffer: "+stringBuff) ;
       for (byte b:buffer1)
       {
           stringBuff.append(String.format("%x", b));
       }

   } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          Log.i("TvPlayerFunctionalTestApp", "Error in Read");
   }
try {
          input.close();
          Log.i("TvPlayerFunctionalTestApp", "File closed");
   } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
   }

どうすれば私を助けることができるのか理解List<Byte> arrays = new ArrayList<Byte>()できません。

4

2 に答える 2

0

以下の試みはどうでしょうか。合計バッファは、私が読んでいるテキスト ファイルから取得されます。

                  int TotalBuffer = AClipTextFileHandler.BufferID.get(0);

                  while (TotalBuffer !=0){

                  bufferData[i]= new byte[AClipTextFileHandler.BufferSize.get(j)];
                  input.read(bufferData[i]);
                  i++;
                  j++;
                  TotalBuffer--;
于 2013-10-30T09:17:51.693 に答える