Android - 为视频创建后台服务

Posted

技术标签:

【中文标题】Android - 为视频创建后台服务【英文标题】:Android - Create a background service for a video 【发布时间】:2014-02-10 10:38:19 【问题描述】:

我有一个创建服务的活动,该服务负责播放视频并允许收听视频的音频,即使应用程序处于后台也是如此。问题是,如何在服务中播放音频并允许应用程序在显示活动时显示活动内的视频?我的意思是,当应用程序在前台时我需要显示视频,当它在后台时我只需要音频,但无需停止并重新启动视频。

我希望我说清楚了......

谢谢

塞巴斯蒂亚诺

【问题讨论】:

【参考方案1】:

启用服务:

try 

            Intent intent1 = new Intent(thisActivity, AlarmReciever.class);
            Apps.sender = PendingIntent.getBroadcast(thisActivity, 2, intent1,
                    0);
            Apps.am = (AlarmManager) getSystemService(ALARM_SERVICE);
            long l = new Date().getTime();
            if (l < new Date().getTime()) 
                l += 100;
            
            Apps.am.setRepeating(AlarmManager.RTC_WAKEUP, l, 100, sender);
         catch (Exception e) 
            Toast.makeText(getApplicationContext(), e.toString(),
                    Toast.LENGTH_SHORT).show();
        

添加类AlarmReciver:

public class AlarmReciever extends BroadcastReceiver 
    @Override
    public void onReceive(Context context, Intent intent) 
        Play.check();
        // Toast.makeText(context, "Alarm Triggered", Toast.LENGTH_LONG).show();
    

添加活动播放并在其中创建方法check()

  @SuppressWarnings("deprecation")
        public static void check() 
ActivityManager am1 = (ActivityManager) thisActivity
                .getSystemService(Activity.ACTIVITY_SERVICE);
        String packageName = am1.getRunningTasks(1).get(0).topActivity
                .getPackageName();
      if(packageName == "your app package name")
          

          
      else
       
             //if video play; show it
             //else play audio
       

    

最后添加 mainfest 权限:

<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />

【讨论】:

以上是关于Android - 为视频创建后台服务的主要内容,如果未能解决你的问题,请参考以下文章

在后台服务中创建地理围栏

应用程序被杀死时Android后台服务正在重新启动

一段时间后,android后台服务停止

如何在 Geofence android 中添加后台服务

Android 创建单独的服务运行在后台(无界面)

在 Android 操作系统中,我可以创建一个在后台运行并检测扬声器是打开还是关闭的服务吗?