2011-09-09 32 views
1

下面的代碼(不是真的由我寫的)用於通過一個InputStream寫一個wav文件的數據,Android的AudioTrack(不重要了我的問題...)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()來檢查文件的大小並查看何時停止播放/播放。不過我已存儲的語音文件我在Android Resources (R.raw.example)並打開它使用:

in = mResources.openRawResource(ResId); 

這給了我一個InputStream。這使我無法使用類似於File.length()的任何內容,因此我不知道文件何時播放。

有誰知道如何實現類似第一個例子?

回答