2013-07-12 1 views
3

У меня уже есть .wav-файл в моем каталоге. В то же время мне нужно воспроизвести его вместе с mp3-файлом. я использовал,Android, как играть в WAV-файл программно

String recordedFile = "/storage/sdcard0/PINOYKARAOKE/1373597371359.wav"; 

MediaPlayer recordedSong = new MediaPlayer(); 
try{ 
recordedSong = MediaPlayer.create(ctx, Uri.fromFile(recordedFile)); 
recordedSong.prepare(); 
recordedSong.start(); 
} 
catch(Exception e){ 
} 

ошибка: Не удалось создать и он бросает IOException

ответ

6

Пытаться создать необработанный папку и поместить файл туда, используйте этот

public void number(int num, Context ctx) { 
       AssetManager am; 
     try { 
      am = ctx.getAssets(); 
      AssetFileDescriptor afd = am.openFd("android.resource://"+getPackageName+"/"+R.raw.your_file_name); 
      player = new MediaPlayer(); 
      player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), 
        afd.getLength()); 
      player.prepare(); 
      player.start(); 
      player.setOnCompletionListener(new OnCompletionListener() { 

       @Override 
       public void onCompletion(MediaPlayer mp) { 
        // TODO Auto-generated method stub 
        mp.release(); 
       } 

      }); 
      player.setLooping(false); 
        } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
+0

Спасибо @aangwi – ceosilvajr

2

Я пытался @aangwi ответ, но получен FileNodeFoundException

final AssetFileDescriptor afd = myactivity.getResources().openRawResourceFd(R.raw.your_file); 
final FileDescriptor fileDescriptor = afd.getFileDescriptor(); 
MediaPlayer player = new MediaPlayer(); 
try { 
    player.setDataSource(fileDescriptor, afd.getStartOffset(), 
    afd.getLength()); 
    player.setLooping(false); 
    player.prepare(); 
    player.start(); 
} catch (IOException ex) { 
    LOGGER.error(ex.getLocalizedMessage(), ex); 
} 
+1

Спасибо, что сделал это для меня! – bsam