zipファイルから音声データを再生したいのですが、
error(-38,0)とError(-38,0)が表示されるだけで、
全く再生されません。
ZipInputStreamも使ってみたのですが、うまくいきません。
どなたかアドバイスをいただけないでしょうか。
<!-- 以下SE部分のソース -->
//SEを再生する
public void sound(){
//音声ファイルがあればファイルクラスを生成
mediaPlayerFileMP3 = meltFileName(zipPath, zipFile + File.separator + Integer.toString(pageNo) + "_" + Integer.toString(tapNo) + ".mp3");
mediaPlayerFileWAV = meltFileName(zipPath, zipFile + File.separator + Integer.toString(pageNo) + "_" + Integer.toString(tapNo) +".wav");
mediaPlayerFileOGG = meltFileName(zipPath, zipFile + File.separator + Integer.toString(pageNo) + "_" + Integer.toString(tapNo) +".ogg");
try{
//音声ファイルがあるかどうかを確認
if(mediaPlayerFileMP3 != null){
mediaPlayerFile = meltAudioFile(zipPath, zipFile + File.separator + Integer.toString(pageNo) + "_" + Integer.toString(tapNo) + ".mp3");
}else if(mediaPlayerFileWAV != null){
mediaPlayerFile = meltAudioFile(zipPath, zipFile + File.separator + Integer.toString(pageNo) + "_" + Integer.toString(tapNo) +".wav");
}else if(mediaPlayerFileOGG != null){
mediaPlayerFile = meltAudioFile(zipPath, zipFile + File.separator + Integer.toString(pageNo) + "_" + Integer.toString(tapNo) +".ogg");
}
//MediaPlayer型の変数を生成
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(((FileInputStream) mediaPlayerFile).getFD());
mediaPlayer.setAudioStreamType(AudioManager.STREAM_VOICE_CALL);
//プレイヤーの準備
mediaPlayer.prepare();
//プレイヤーの再生
mediaPlayer.start();
}catch(Exception e){
}
}
//zipファイルからとったデータをfile形式にする
public static File meltFileName(String zipPath, String file){
File result = null;
try{
//zipファイルを抽象化
ZipFile zipFile = new ZipFile(zipPath);
//zipファイルの中身を抽象化
final ZipEntry entry = zipFile.getEntry(file);
if(entry != null){
result = new File(entry.getName());
}
}catch(Exception e){
}
return result;
}
//zipファイルからとったデータをInputStream形式にする
public static InputStream meltAudioFile(String zipPath, String file){
InputStream result = null;
try{
//zipファイルを抽象化
ZipFile zipFile = new ZipFile(zipPath);
//zipファイルの中身を抽象化
final ZipEntry entry = zipFile.getEntry(file);
if(entry != null){
InputStream in = zipFile.getInputStream(entry);
result = in;
}
}catch(Exception e){
result = null;
}
return result;
}