2013-09-16 3 views
-1

У меня есть 2 песни. Я использовал радиокнопки для обеих песен, поэтому, когда сначала выбираю, мне следует сыграть в нее первую песню, а когда я нажму секунду. Вторая песня должна быть воспроизведена. Я использовал кнопку «Воспроизведение», «Пауза» и «Стоп», поэтому, когда я выбираю первую песню и нажимаю кнопку воспроизведения, первая песня должна воспроизводиться. Как использовать медиаплеер на 2 песни. Ранее я использовал 2 медиаплеера для разных песен. Как использовать один медиаплеер.
Ранее я использовал эти утверждения для двух песенМогу ли я играть с несколькими композициями с одним MediaPlayer

mediaPlayer = MediaPlayer.create (getApplicationContext(), R.drawable.inno);

mediaPlayer1 = MediaPlayer.create (getApplicationContext(), R.drawable.rocky);

Мой вопрос я хочу использовать только один медиа-плеер для обеих песен

+0

Вы можете сделать ['setDataSource'] (http://developer.android.com/reference/android/media/MediaPlayer.html#setDataSource%28java.lang.String%29) и т. Д. Один раз вы нажимаете кнопку. – zapl

+0

ясно скажите –

+0

может кто-нибудь помочь мне по этой проблеме –

ответ

0

Keep с помощью двух медиаплееры, в случаях, как это не проблема, что делать. Использование только одной ссылки означает, что вам придется воссоздавать ее каждый раз, когда вы хотите сменить клип, или остановить его и вызвать setDataSource (контекст, URI).

Если вы используете только одну ссылку на медиаплеер, пользователю придется ждать, пока клип будет готов каждый раз, когда он должен быть воспроизведен, в то время как в вашей реализации оба звуковых клипа готовы к воспроизведению в любое время.

В любом случае, вот пример setDataSource:

MediaPlayer mp = MediaPlayer.create(context, firstSongUriOrRes); 

public void play(int clip) 
{ 
    if(mp.isPlaying()) //Stop the mediaplayer if it's already playing 
     mp.stop(); 
    switch(clip)   //Choose the clip to be played 
    { 
     case 0: 
      mp.setDataSource(context, firstSongUriOrRes); 
      break; 
     case 1: 
      mp.setDataSource(context, secondSongUriOrRes); 
      break; 
    } 
    mp.prepare(); 
    mp.start();   //Start the mediaplayer 
} 

Другой способ использования setDataSource это поместить звуковые файлы внутри каталога активов и использовать этот код:

AssetFileDescriptor fd = context.getAssets().openFd("pathInsideAssets/fileName"); 
mp.setDataSource(fd.getFileDescriptor(), fd.getStartOffset(), fd.getDeclaredLength()); 
+0

Что такое uri, если я даю путь песни i.e., R.drawable.inno, он дает мне ошибку в этом утверждении mp.setDataSource(); Я хочу знать, что это ури? это веб-ссылка ??? –

+0

Прошу меня изменить тип inno на uri –

+0

, он также дает мне ошибку в контексте –

1

Лучше перестать ленив и ищем решение самостоятельно. @ 1Up в значительной степени ответил на ваш вопрос. Для вашего второго вопроса: This is Uri

+0

Брат У меня есть 2 песни в папке res и два медиаплееры для разных песен. Мне нужен один медиаплеер для обеих песен, ранее я написал код mediaPlayer = MediaPlayer .create (getApplicationContext(), R.drawable.inno); mediaPlayer1 = MediaPlayer.create (getApplicationContext(), R.drawable.rocky); теперь я хочу использовать только один медиаплеер, как можно использовать –

+0

ответ мне, я не ленивый, ваш ленивый, чтобы ответить на мой вопрос ok –

+0

MediaPlayer.setDatasource (path); – pash

Смежные вопросы