تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
البنية المفضلة لتطبيق صوتي هي تصميم العميل/الخادم. العميل هو نشاط في تطبيقك يتضمّن MediaBrowser ووحدة تحكُّم في الوسائط وواجهة مستخدم. الخادم MediaBrowserService يحتوي على المشغّل وجلسة وسائط.
يوفّر MediaBrowserService ميزتَين أساسيتَين:
عند استخدام MediaBrowserService، يمكن للمكوّنات والتطبيقات الأخرى التي تتضمَّن MediaBrowser اكتشاف خدمتك وإنشاء وحدة تحكُّم خاصة بها في الوسائط والاتصال بجلسة تشغيل الوسائط والتحكّم في المشغّل. بهذه الطريقة تتمكن تطبيقات Wear OS وAndroid Auto من الوصول إلى تطبيق الوسائط الخاص بك.
ويوفّر أيضًا واجهة برمجة تطبيقات للتصفّح اختيارية. لا يجب أن تستخدم التطبيقات هذه الميزة. تتيح واجهة برمجة تطبيقات التصفح للعملاء الاستعلام عن الخدمة وإنشاء تمثيل للتسلسل الهرمي للمحتوى، والذي قد يمثل قوائم تشغيل أو مكتبة وسائط أو أي نوع آخر من المجموعات.
تاريخ التعديل الأخير: 2025-07-26 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-26 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Audio app overview\n\nThe preferred architecture for an audio app is a client/server design. The client is an Activity in your app that includes a `MediaBrowser`, media controller, and the UI. The server is a `MediaBrowserService` containing the player and a media session.\n\nA `MediaBrowserService` provides two main features:\n\n- When you use a `MediaBrowserService`, other components and applications with a `MediaBrowser` can discover your service, create their own media controller, connect to your media session, and control the player. This is how Wear OS and Android Auto Applications gain access to your media application.\n- It also provides an optional *browsing API*. Applications don't have to use this feature. The browsing API lets clients query the service and build out a representation of its content hierarchy, which might represent playlists, a media library, or some other kind of collection.\n\n| **Note:** As is the case with media session and media controller, the recommended implementation of media browser services and media browsers are the classes `MediaBrowserServiceCompat` and `MediaBrowserCompat`, which are defined in the [media-compat support library](https://developer.android.com/topic/libraries/support-library/features.html#v4-media-compat). They replace earlier versions of the classes `MediaBrowserService` and `MediaBrowser` that were introduced in API 21. For brevity, the terms \"MediaBrowserService\" and \"MediaBrowser\" refer to instances of `MediaBrowserServiceCompat` and `MediaBrowserCompat` respectively.\n\n**[Building a media browser service](/guide/topics/media-apps/audio-app/building-a-mediabrowserservice)**\n: How to create a media browser service that contains a media session, manage client connections, and become a foreground service while playing audio.\n\n**[Building a media browser client](/guide/topics/media-apps/audio-app/building-a-mediabrowser-client)**\n: How to create a media browser client activity that contains a UI and media controller, and connect and communicate with a media browser service.\n\n**[Media session callbacks](/guide/topics/media-apps/audio-app/mediasession-callbacks)**\n: Describes how the media session callback methods manage the media session, media browser service, and other app components like notifications and broadcast receivers.\n\n**[Universal Android Music Player Sample](https://github.com/android/uamp)**\n: This GitHub sample shows how to implement a media app that allows background playback of audio, and provides a media library that is exposed to other apps."]]