В моем приложении я использую медиаплеер для воспроизведения одного аудиофайла (12 МБ).Приложение содержит три действия ManiActivity, MWlyrics, О.Звук воспроизводится в MainActivity, проблема заключается в том, что я переключаюсь между этими действиями. Звук перестает воспроизводиться.
public class MainActivity extends AppCompatActivity {
private MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mp = MediaPlayer.create(this, R.raw.abc);
getSupportActionBar().setElevation(0);
ImageView imageView = (ImageView)findViewById(R.id.main_img_lm);
Glide.with(this).load(R.drawable.lm)
.thumbnail(0.5f)
.into(imageView);
}
//play song method
public void playSong (View v){
mp.start();
}
//pause song method
public void pauseSong (View v){
mp.pause();
}
//stop song method
public void stopSong (View v){
mp.stop();
mp = MediaPlayer.create(this, R.raw.abc);
}
// main menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menur, menu);
menu.add(0, 1, 1, menuIconWithText(getResources().getDrawable(R.drawable.ic_rate), getResources().getString(R.string.rate_us)));
menu.add(0, 2, 2, menuIconWithText(getResources().getDrawable(R.drawable.ic_apps), getResources().getString(R.string.more_apps)));
menu.add(0, 3, 3, menuIconWithText(getResources().getDrawable(R.drawable.ic_share), getResources().getString(R.string.share_app)));
menu.add(0, 4, 4, menuIconWithText(getResources().getDrawable(R.drawable.ic_info), getResources().getString(R.string.about)));
menu.add(0, 5, 5, menuIconWithText(getResources().getDrawable(R.drawable.ic_exit), getResources().getString(R.string.exit)));
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 1:
Toast.makeText(MainActivity.this, "redirecting to rate us and review page page", Toast.LENGTH_SHORT).show();
return true;
case 2:
Toast.makeText(MainActivity.this, "thank you for using", Toast.LENGTH_SHORT).show();
return true;
case 3:
Toast.makeText(MainActivity.this, "sharing app..", Toast.LENGTH_SHORT).show();
return true;
case 4:
Toast.makeText(MainActivity.this, "about this app", Toast.LENGTH_SHORT).show();
Intent j = new Intent(this,About.class);
startActivity(j);
return true;
case 5:
finish();
mp.release();
return true;
case R.id.mdwtid:
Intent i = new Intent(this,MWLyrics.class);
startActivity(i);
return true;
}
return super.onOptionsItemSelected(item);
}
private CharSequence menuIconWithText(Drawable r, String title) {
r.setBounds(0, 0, r.getIntrinsicWidth(), r.getIntrinsicHeight());
SpannableString sb = new SpannableString(" " + title);
ImageSpan imageSpan = new ImageSpan(r, ImageSpan.ALIGN_BOTTOM);
sb.setSpan(imageSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return sb;
}
}
Сведения о приложении ..
MainActiviy - отображает изображение альбома и[воспроизведение, пауза и остановка] images.
Mwlyrics - отображает текст песни.
About - отображать информацию о приложении.
Как решить эту проблему ..
Как продолжить воспроизведение звука при переключении между другими действиями без каких-либо перерывов.
Как эффективно использовать этот аудиофайл в приложении ... с учетом памяти.
при тестировании приложения на моем мобильном телефоне (moto one power, android pie), я заметил, что частота (иногда работает 40%) и максимальное использование 170 мб.Что это точно значит.Я новичок в разработке Android, и мне нужно несколько советов по этому поводу.