سؤال

أنا أعمل على عرض لمشغل الموسيقى (عنصر واجهة مستخدم الشاشة الرئيسية) .. يحتاج فقط لتشغيل أغنية واحدة (ويفضل أن يكون مع فئة MediaPlayer). لكنني لست متأكدًا من كيفية تنفيذه. أنا نوع من عديمي الخبرة في تطوير Android ، فقط هذا ما ذكر.

الفصل الذي أمتده حتى الآن AppWidgetProvider, ، وأعتقد أنه ليس من الجيد ترك هذا الفصل يتعامل مع الجزء الذي يلعب الموسيقى ، بل Service. وإذا كان الأمر كذلك ، كيف؟

علاوة على ذلك ، لدي 3 أزرار: اللعب ، وقفة وتوقف ، ويمكنني التمييز بين الشخص الذي تم الضغط عليه onReceive(...).

شكرا مقدما!


ها هو الفصل.

public class MusicManager extends AppWidgetProvider {

    private final String ACTION_WIDGET_PLAY = "PlaySong";
    private final String ACTION_WIDGET_PAUSE = "PauseSong";
    private final String ACTION_WIDGET_STOP = "StopSong";   
    private final int INTENT_FLAGS = 0;
    private final int REQUEST_CODE = 0;

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,
            int[] appWidgetIds) {

        RemoteViews controlButtons = new RemoteViews(context.getPackageName(),
                R.layout.main);

        Intent playIntent = new Intent(context, MusicService.class);

        Intent pauseIntent = new Intent(context, MusicService.class);

        Intent stopIntent = new Intent(context, MusicService.class);


        PendingIntent playPendingIntent = PendingIntent.getService(
                context, REQUEST_CODE, playIntent, INTENT_FLAGS);
        PendingIntent pausePendingIntent = PendingIntent.getService(
                context, REQUEST_CODE, pauseIntent, INTENT_FLAGS);
        PendingIntent stopPendingIntent = PendingIntent.getService(
                context, REQUEST_CODE, stopIntent, INTENT_FLAGS);

        controlButtons.setOnClickPendingIntent(
                R.id.btnPlay, playPendingIntent);
        controlButtons.setOnClickPendingIntent(
                R.id.btnPause, pausePendingIntent);
        controlButtons.setOnClickPendingIntent(
                R.id.btnStop, stopPendingIntent);

        appWidgetManager.updateAppWidget(appWidgetIds, controlButtons);         
    }
}
هل كانت مفيدة؟

المحلول

وأضاف <service android:name=".MusicService" android:enabled="true" />إلى البيان!

نصائح أخرى

في ال onUpdate(...) طريقة الخاص بك AppWidgetProvider, ، استخدم شيئًا كهذا لبدء خدمة (يربط هذا المثال الخدمة بحدث زر انقر فوق الزر):

Intent intent = new Intent(context, MusicService.class);
PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0);

// Get the layout for the App Widget and attach an on-click listener to the button
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.appwidget_provider_layout);
views.setOnClickPendingIntent(R.id.button, pendingIntent);

لمزيد من المعلومات انظر هنا

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top