2011-09-09 34 views
1

次のコードは、(実際に私が書いていない)アンドロイドのAudioTrack(私の質問のために重要でない...)に、InputStreamを使用してwavファイルのデータを書き込むために使用されAndroidリソースの代わりにFile.length()を使用しますか?

int bytesread = 0, ret = 0; 
int size = (int) file.length(); 
at.play(); 
while (bytesread < size) { 
    ret = in.read(byteData, 0, count); 
    if (ret != -1) { // Write the byte array to the track 
     at.write(byteData, 0, ret); 
     bytesread += ret; 
    } 
} 

あなたはJavaのFileクラスを使用する場合は、 File.length()を使用してファイルのサイズを確認し、いつストリーミング/再生を停止するかを確認できます。しかし、私はアンドロイドResources (R.raw.example)で私audiofilesを格納しているし、私が使用して開きます:

in = mResources.openRawResource(ResId); 

InputStreamを与えます。これにより、私はFile.length()と似たようなものを使うことができなくなり、そのファイルがいつ再生されたのか分かりません。

誰もが最初の例と同様のものを達成する方法を知っていますか?

答えて

関連する問題