Intereting Posts
Как создать анимированный фоновый градиент, например, приложение Instagram? Как создать ColorStateList программно? Фрагмент внутри фрагмента Радиус угла обзора CardView Android Webview – полностью очистить кэш Эмулятор Android: как узнать, используется ли функция виртуализации оборудования? Как пользовательское приложение whatsapp обнаруживает изменение в изображении профиля своего контакта? INSTALL_FAILED_DUPLICATE_PERMISSION … C2D_MESSAGE Сделать привязку ViewPager с более коротким перетаскиванием Есть ли причина, по которой я не должен хранить хранилище ключей в контроле версий? Android Replace "…" с символом многоточия Кнопка с цветом фона и прозрачным текстом Как объявить панель инструментов / панель расширенной высоты на Android Lollipop? Показать Android SnackBar над клавиатурой? Android 4.2.2 Отладка USB-опции «Всегда разрешать с этого компьютера» приводит к неизвестной цели для устройства?

Служба фоновой музыки Android

Я разрабатываю приложение для развлечений в Android. Я хочу играть в фоновую музыку, и я хочу использовать сервис для этого. У приложения есть 3 действия, и музыка должна воспроизводиться во всех видах деятельности. Кроме того, когда действие приостановлено, музыка должна быть приостановлена ​​и остановлена ​​при уничтожении. Может ли кто-нибудь сказать мне, как это сделать? Любые ссылки или примеры?

Спасибо.

Solutions Collecting From Web of "Служба фоновой музыки Android"

Сделайте это без обслуживания

http://www.rbgrn.net/content/307-light-racer-20-days-61-64-completion

Если вы так серьезно относитесь к этому с помощью сервисов, использующих медиаплеер

Intent svc=new Intent(this, BackgroundSoundService.class); startService(svc); 

 public class BackgroundSoundService extends Service { private static final String TAG = null; MediaPlayer player; public IBinder onBind(Intent arg0) { return null; } @Override public void onCreate() { super.onCreate(); player = MediaPlayer.create(this, R.raw.idil); player.setLooping(true); // Set looping player.setVolume(100,100); } public int onStartCommand(Intent intent, int flags, int startId) { player.start(); return 1; } public void onStart(Intent intent, int startId) { // TO DO } public IBinder onUnBind(Intent arg0) { // TO DO Auto-generated method return null; } public void onStop() { } public void onPause() { } @Override public void onDestroy() { player.stop(); player.release(); } @Override public void onLowMemory() { } } 

Пожалуйста, позвоните в службу поддержки

 <service android:enabled="true" android:name=".BackgroundSoundService " /> 

Theres отличный учебник по этому вопросу в HelloAndroid по этому вопросу. Infact это был первый хит, который я получил в Google. Вы должны попробовать googling, прежде чем спрашивать здесь, так как это хорошая практика.

@ Ответ Synxmax корректен при использовании класса « Service и « MediaPlayer », однако вам также необходимо объявить Service в манифесте для этого, например:

 <service android:enabled="true" android:name="com.package.name.BackgroundSoundService" /> 

Слишком поздно для вечеринки здесь, но я все равно добавлю свои $ 0.02, Google выпустил бесплатный образец под названием универсальный музыкальный плеер, с помощью которого вы можете научиться транслировать музыку на всех платформах Android (авто, смотреть, мобильно, телевидение), которые он использует Сервис, чтобы играть музыку в фоновом режиме, действительно проверьте это очень полезно. Вот ссылка на проект
https://github.com/googlesamples/android-UniversalMusicPlayer

У меня была проблема, чтобы запустить его, и я внесли некоторые изменения, чтобы запустить его с помощью mp3-источника. Вот файл BackfrounSoundService.java. Что мой mp3-файл находится в моей SD-карте в моем телефоне.

 public class BackgroundSoundService extends Service { private static final String TAG = null; MediaPlayer player; public IBinder onBind(Intent arg0) { return null; } @Override public void onCreate() { super.onCreate(); Log.d("service", "onCreate"); player = new MediaPlayer(); try { player.setDataSource(Environment.getExternalStorageDirectory().getAbsolutePath() + "/your file.mp3"); } catch (IOException e) { e.printStackTrace(); } player.setLooping(true); // Set looping player.setVolume(100, 100); } public int onStartCommand(Intent intent, int flags, int startId) { Log.d("service", "onStartCommand"); try { player.prepare(); player.start(); } catch (IOException e) { e.printStackTrace(); } return 1; } public void onStart(Intent intent, int startId) { // TO DO } public IBinder onUnBind(Intent arg0) { // TO DO Auto-generated method return null; } public void onStop() { } public void onPause() { } @Override public void onDestroy() { player.stop(); player.release(); } @Override public void onLowMemory() { } } 

Создайте службу переднего плана с помощью START_STICKY .

 @Override public int onStartCommand(Intent startIntent, int flags, int startId) { if (startIntent != null) { String action = startIntent.getAction(); String command = startIntent.getStringExtra(CMD_NAME); if (ACTION_CMD.equals(action)) { if (CMD_PAUSE.equals(command)) { if (mPlayback != null && mPlayback.isPlaying()) { handlePauseRequest(); } } else if (CMD_PLAY.equals(command)) { ArrayList<Track> queue = new ArrayList<>(); for (Parcelable input : startIntent.getParcelableArrayListExtra(ARG_QUEUE)) { queue.add((Track) Parcels.unwrap(input)); } int index = startIntent.getIntExtra(ARG_INDEX, 0); playWithQueue(queue, index); } } } return START_STICKY; } 

Затем это можно вызвать из любой активности, чтобы воспроизвести какую-то музыку

 Intent intent = new Intent(MusicService.ACTION_CMD, fileUrlToPlay, activity, MusicService::class.java) intent.putParcelableArrayListExtra(MusicService.ARG_QUEUE, tracks) intent.putExtra(MusicService.ARG_INDEX, position) intent.putExtra(MusicService.CMD_NAME, MusicService.CMD_PLAY) activity.startService(intent) 

Вы можете привязать к службе с помощью bindService и сделать паузу / остановку службы из соответствующих методов жизненного цикла.

Вот хороший урок о воспроизведении музыки в фоновом режиме на Android