Я знаю, что вы исправили свою проблему, но на всякий случай я хочу поделиться с вами этим классом.Это вспомогательный класс, который позволяет воспроизводить звук в любом месте вашего приложения.
Итак, это класс:
package com.oyduts.blindtest.Helpers;
import android.content.Context;
import android.content.res.AssetFileDescriptor;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.media.MediaPlayer;
import android.os.CountDownTimer;
import android.widget.Toast;
import java.io.Console;
import java.io.IOException;
import java.io.InputStream;
public class MediaManager
{
private static MediaPlayer _mediaPlayer;
private static Context _context;
private static int _pausedAt;
private static CountDownTimer _countDownTimer;
public static Bitmap GetBitmapFromAssets(Context c, String filename)
{
AssetManager am = c.getAssets();
InputStream is = null;
try
{
is = am.open(filename);
}
catch (IOException e)
{
e.printStackTrace();
}
return BitmapFactory.decodeStream(is);
}
public static void InitMediaPlayer(Context c)
{
_context = c;
_mediaPlayer = new MediaPlayer();
}
public static void LoadMusic(String filePath)
{
try
{
_mediaPlayer.reset();
AssetFileDescriptor afd = _context.getAssets().openFd(filePath);
_mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength());
_mediaPlayer.prepare();
afd.close();
}
catch (Exception e)
{
e.printStackTrace();
Toast.makeText(_context, "Couldn't load the music, please check your data folder.", Toast.LENGTH_SHORT).show();
}
}
public static void PauseMusic()
{
try
{
if (_mediaPlayer != null && _mediaPlayer.isPlaying())
{
_pausedAt = _mediaPlayer.getCurrentPosition();
_mediaPlayer.pause();
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void PlayMusic()
{
try
{
if (_mediaPlayer != null && !_mediaPlayer.isPlaying()) _mediaPlayer.start();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void ResumeMusic()
{
try
{
if (_mediaPlayer != null && !_mediaPlayer.isPlaying())
{
_mediaPlayer.seekTo(_pausedAt);
_mediaPlayer.start();
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void StopMusic()
{
try
{
if (_mediaPlayer != null && _mediaPlayer.isPlaying()) _mediaPlayer.stop();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void ReleaseMusic()
{
try
{
if (_mediaPlayer != null) _mediaPlayer.release();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
И есть пример того, как его использовать:
Сначала запустите проигрыватель в вашем методе onCreate:
// Init mediaplayer
MediaManager.InitMediaPlayer(this);
Затем, если вы хотите загрузить звук перед его фактическим воспроизведением:
MediaManager.LoadMusic("your_file_path");
Затем вы можете воспроизводить музыкуиспользуя:
MediaManager.PlayMusic();
Чтобы остановить музыку:
MediaManaer.StopMusic();
Вы также можете возобновить музыку (например, в методе onResume):
MediaManager.ResumeMusic();
И наконец, не забудьте в конце освободить плеер:
MediaManager.ReleaseMusic();
Вы также можете изменить этот класс в соответствии со своими потребностями.
РЕДАКТИРОВАТЬ Кстати, ваши аудио файлы должны быть в папке активов вашего приложения
С наилучшими пожеланиями