0

次のコードは私にとってはうまくいきます。私はアンドロイドで作業しているので、オーディオストリームクラスを使用できません。

           File correct = new File("data1.mp3");
           File file =new File("data.mp3");
               correct.createNewFile();
           FileInputStream in = new FileInputStream(file);
           FileOutputStream out = new FileOutputStream(correct);

           byte[] buffer = new byte[in.available()];


           for(int i=0;i<1000;i++){

               in.read(buffer, 0, 2048);

               out.write(buffer, 0, 2048);

           }

           in.close();
           out.close();

次のコードを実行すると、エラーが発生して機能しません

               correct.createNewFile();
           FileInputStream in = new FileInputStream(file);
           FileOutputStream out = new FileOutputStream(correct);

           byte[] buffer = new byte[in.available()];

           in.skip(2048);
           for(int i=0;i<1000;i++){

               in.read(buffer, 0, 2048);

               out.write(buffer, 0, 2048);

           }

           in.close();
           out.close();

ここで同じこと、このコードを実行するとエラーが発生します

               correct.createNewFile();
           FileInputStream in = new FileInputStream(file);
           FileOutputStream out = new FileOutputStream(correct);

           byte[] buffer = new byte[in.available()];


           for(int i=0;i<1000;i++){

               in.read(buffer, 0, 2048);
               in.skip(2048);
               out.write(buffer, 0, 2048);

           }

           in.close();
           out.close();

だから私の実際の質問は、どのように正しいオフセットを指定し、フレームを新しい mp3 ファイルにコピーするのですか? フレームのサイズを取得する方法は? 最初の重要なフレームをいくつかコピーする必要がありますか?

4

1 に答える 1

1

Android でオーディオのフレームを抽出する場合は、クリッパーを実装する必要があります。これを見

于 2013-03-21T10:11:24.917 に答える