Play audio file with Sdcard

I would like to play an audio file from an SD card. How can I read an audio file and play it? Below is my code for playing an audio file:

int sound1; sound1 = mSoundPool.load(this, R.raw.om, 1); mSoundPool.play(sound1, 1, 1, 1, time - 1, 1); 

Here, in the above code, I use soundpool to play the audio file from the raw folder, but I need to play the audio file from the SD card using soundpool.

It’s interesting right now to play audio from an SD card.

How to achieve this? please help me fix this as soon as possible

+4
source share
2 answers

Use the code below.

 MediaPlayer mp = new MediaPlayer(); mp.setDataSource("/mnt/sdcard/yourdirectory/youraudiofile.wav"); mp.prepare(); mp.start(); 
+19
source

I played sound from an SD card using the following code and it works for me.

 private SoundPool mSoundPool; private int mSoundID; private boolean isLoaded = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(TAG, "Start Greeting View Activity..."); setContentView(R.layout.greeting_view_activity); //mGiGiView = (GreetingWidget) findViewById(R.id.gigi_greet); //mGiGiView.setOnTouchListener(this); //Set default animation sound path. String soundAnimUrl = "/gigi/anim/evening.ogg"; // get the Bundle out of the Intent. Bundle extras = getIntent().getExtras(); if (extras != null) { // check to see if "soundAnimUrl" is in the bundle, if so then // assign it value to animUrl if not, assign null to soundAnimUrl. soundAnimUrl = extras.containsKey("soundAnimUrl") ? extras .getString("soundAnimUrl") : null; } // Set the hardware buttons to control the music. this.setVolumeControlStream(AudioManager.STREAM_MUSIC); // Load the sound. mSoundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0); mSoundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() { @Override public void onLoadComplete(SoundPool soundPool, int sampleId, int status) { isLoaded = true; // Play the sound when loaded play(); } }); mSoundID = mSoundPool .load(getFile(Environment.DIRECTORY_MUSIC, soundAnimUrl) .getPath(), 1); //Play sound from raw directory // soundID = soundPool.load(this, R.raw.greeting1, 1); } private void play() { // Getting the user sound settings AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE); float actualVolume = (float) audioManager .getStreamVolume(AudioManager.STREAM_MUSIC); float maxVolume = (float) audioManager .getStreamMaxVolume(AudioManager.STREAM_MUSIC); float volume = actualVolume / maxVolume; // Is the sound loaded already? if (isLoaded) { mSoundPool.play(mSoundID, volume, volume, 1, 0, 1f); Log.d(TAG, "Played sound"); } } @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { switch (v.getId()) { case R.id.gigi_greet: play(); break; default: break; } } return false; } /** * Get File instance from sd card path. * * @param deviceFolderPath * - Pictures, Music, etc * @param dbFilePath * - path stored in db (/gigi/anim/morning.ogg) * @return */ public File getFile(final String deviceFolderPath, final String dbFilePath) { // Create full path String picturePath = deviceFolderPath.concat(File.separator).concat( dbFilePath); // Create file File mFile = getExternalFilesDir(picturePath); return mFile; } 
+3
source

Source: https://habr.com/ru/post/1399316/


All Articles