Я использую вкладку, в которой есть несколько плейлистов песен. Так что всякий раз, когда я играю песню из одного плейлиста и перехожу на другую, обе песни начинают играть одновременно. Теперь я хочу, чтобы останавливать музыку из моей предыдущей деятельности всякий раз, когда я выбираю любую песню из своей новой деятельности, используя аудио-менеджер, без использования каких-либо сервисов. Так может кто-нибудь помочь мне или дать мне несколько направлений в этом?Пауза с использованием аудио-менеджера
Код: -
public class AllSongs extends ListActivity implements AudioManager.OnAudioFocusChangeListener{
private Cursor musiccursor;
int music_column_index;
int songPosition;
int ResumePosition=0;
MediaPlayer mMediaPlayer;
String filen,filename;
ImageView imageView;
ListAdapter adapter;
int count,index,top;
ListView lv;
Parcelable state;
View v;
AudioManager am;
int result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState)
am = (AudioManager) getSystemService(AUDIO_SERVICE);
result=am.requestAudioFocus(this,AudioManager.STREAM_MUSIC,AudioManager.AUDIOFOCUS_GAIN);
//Creating list of songs using MediaStore
mMediaPlayer=new MediaPlayer();
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
if(result!=AudioManager.AUDIOFOCUS_REQUEST_GRANTED){
Toast.makeText(getApplicationContext(), "Request not Granted", Toast.LENGTH_LONG).show();
}
else{
mMediaPlayer.reset();
musiccursor.moveToPosition(position);
filename = musiccursor.getString(music_column_index);
mMediaPlayer.setDataSource(filename);
mMediaPlayer.prepare();
mMediaPlayer.start();
}
@Override
public void onAudioFocusChange(int focusChange) {
// TODO Auto-generated method stub
Log.d("In AudioManager", "adajdjdasdjsd");
if(focusChange==AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK){
mMediaPlayer.stop();
mMediaPlayer.release();
}
else{
mMediaPlayer.stop();
}
}
Другой активность
public class Artists extends ListActivity implements OnAudioFocusChangeListener{
setContentView(R.layout.artists);
manager = (AudioManager) getSystemService(AUDIO_SERVICE);
result=manager.requestAudioFocus(this,AudioManager.STREAM_MUSIC,AudioManager.AUDIOFOCUS_GAIN);
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
f(result!=AudioManager.AUDIOFOCUS_REQUEST_GRANTED){
Toast.makeText(getApplicationContext(), "Request not Granted", Toast.LENGTH_LONG).show();
}
else{
mMediaPlayer.reset();
musiccursor.moveToPosition(position);
filename = musiccursor.getString(music_column_index);
mMediaPlayer.setDataSource(filename);
mMediaPlayer.prepare();
mMediaPlayer.start();
}
}
@Override
public void onAudioFocusChange(int focusChange) {
// TODO Auto-generated method stub
if(focusChange==AudioManager.AUDIOFOCUS_LOSS_TRANSIENT){
mMediaPlayer.stop();
mMediaPlayer.reset();
mMediaPlayer.release();
}
}
Я попробовал, посмотрю мой обновленный вопрос, но я все еще получаю несколько песен, которые играют. –
Вы реализовали onAudioFocusChangeListener? –
Да, я его реализовал. –