MediaPlayer Сервис Android
Я новичок в Android. Я создаю сервис для медиаплеера, чтобы он мог продолжать воспроизводить песню, даже если я закрою приложение. Я создал активность для медиаплеера, и у него есть все функции , такие как play , pause , next , previous, seekbar, а также включает oncompletionlistener . Все работает отлично. Но теперь я хочу, чтобы всем управляла служба.
Я создал класс MyService:
public class MyService extends Service {
public static MediaPlayer mp;
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
mp = new MediaPlayer();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
но в моей деятельности у меня плеер создал ArrayList для Songlist, из которого я беру currentsongIndex , и через него я поддерживаю все функции, такие как next, previous и all.. Теперь в Службе как мне получить songlist, который также требуется в моей деятельности ?? Где я должен создать объект MediaPlayer в сервисе или деятельности ??
для MediaPlayer я предложил http://www.androidhive.info/2012/03/android-building-audio-player-tutorial/ . Для моего кода media player вы можете обратиться к этому сайту. Спасибо. Pleaze очистить мои сомнения. Я так запуталась. Ответить мне в ближайшее время..
3 ответов
вы на правильном пути. Я адаптировался из образцов SDK; вот как я это делаю, и он отлично работает. Из вашего ArrayList (в вашей деятельности не из службы) вызовите
onListItemClick
и запустите намерение, которое запускает музыкальный сервис:
startService(new Intent(MusicService.ACTION_PLAY));
в вашем манифесте вам нужно будет добавить:
<intent-filter>
<action android:name="com.blah.blah.action.PLAY" />
<xxx xxx>
</intent-filter>
и, конечно, в вашем музыкальном сервисе вам нужно получить намерение:
public int onStartCommand(Intent intent, int flags, int startId) {
String action = intent.getAction();
if (action.equals(ACTION_PLAY))
processPlayRequest();
}
обязательно добавьте намерения для skip, rewind, stop так далее. Дай мне знать, если это поможет.
получение приложения для запуска в фоновом режиме должно быть позаботилось о самой "службе".
Попробуйте следовать этому примеру http://www.vogella.com/articles/AndroidServices/article.html
Сервис предназначен для работы в фоновом режиме.
Я прошел через то же самое! Это долгий путь, чтобы разработать даже действительно большое приложение mp3-плеер. Ответ длинный.
вот несколько ресурсов, которые мне очень помогли. Android имеет статью об этом в своих документах разработчика:
http://developer.android.com/guide/components/services.html
обратите внимание на то, что говорится в нижней части этой длинной статьи о связанных службах и работает на переднем плане.
кроме того, управление состоянием игрока-это то, что вызвало у меня больше всего головных болей.
вы также захотите взглянуть на threading, потому что создание этой новой службы по-прежнему будет выполнять все в основном потоке пользовательского интерфейса, звучит безумно, но верно. Взгляните на ExecutorService для управления пулами потоков. Хотел бы я сказать, что это было проще.
к сожалению, большая часть моего формального обучения со всего интернета, но с услугами android происходит от платного сайт:
http://www.pluralsight.com/training/Courses/TableOfContents/android-services
Это хороший ресурс для всех программистов, я думаю, но имеет большие разделы о многих аспектах программирования для Android, которые только кратко остановиться на других сайтах учебник.
ресурсы в Vogella также хороши, упомянутые выше.