结合SERVICE 播放视频 安卓开发eclipse代码

时间: 2023-08-25 20:04:41 浏览: 39
好的,以下是一个简单的Java代码示例,可以结合SERVICE播放视频,适用于安卓开发Eclipse: ```java import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.Toast; import java.io.IOException; import android.media.MediaPlayer; public class VideoService extends Service implements SurfaceHolder.Callback, MediaPlayer.OnPreparedListener, MediaPlayer.OnCompletionListener { private MediaPlayer mediaPlayer; private SurfaceHolder surfaceHolder; private SurfaceView surfaceView; private FrameLayout videoLayout; private String videoPath; @Override public void onCreate() { super.onCreate(); // 初始化MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setOnPreparedListener(this); mediaPlayer.setOnCompletionListener(this); // 初始化SurfaceView surfaceView = new SurfaceView(this); surfaceHolder = surfaceView.getHolder(); surfaceHolder.addCallback(this); // 初始化FrameLayout videoLayout = new FrameLayout(this); videoLayout.addView(surfaceView, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); } @Override public int onStartCommand(Intent intent, int flags, int startId) { if (intent == null) { return START_NOT_STICKY; } // 获取视频路径 videoPath = intent.getStringExtra("videoPath"); if (videoPath == null) { return START_NOT_STICKY; } // 播放视频 try { mediaPlayer.setDataSource(videoPath); mediaPlayer.prepareAsync(); } catch (IOException e) { Toast.makeText(this, "Error playing video", Toast.LENGTH_SHORT).show(); stopSelf(); } return START_NOT_STICKY; } @Override public void onDestroy() { super.onDestroy(); // 释放MediaPlayer if (mediaPlayer != null) { mediaPlayer.release(); mediaPlayer = null; } // 移除SurfaceView if (surfaceView != null) { videoLayout.removeView(surfaceView); surfaceView = null; } } @Override public IBinder onBind(Intent intent) { return null; } @Override public void surfaceCreated(SurfaceHolder holder) { mediaPlayer.setDisplay(surfaceHolder); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { // Do nothing } @Override public void surfaceDestroyed(SurfaceHolder holder) { // Do nothing } @Override public void onPrepared(MediaPlayer mp) { mediaPlayer.start(); } @Override public void onCompletion(MediaPlayer mp) { stopSelf(); } } ``` 在这个示例中,我们创建了一个名为VideoService的SERVICE,在onCreate方法中初始化MediaPlayer和SurfaceView,onStartCommand方法中获取视频路径并播放视频,onDestroy方法中释放MediaPlayer和移除SurfaceView。 你可以根据自己的需求修改这个示例代码,例如添加一些处理视频的函数,或者将它嵌入到自己的安卓应用程序中。

相关推荐

最新推荐

recommend-type

Eclipse中实现JS代码提示功能(图文教程)

本文通过图文并茂的形式给大家介绍了Eclipse中实现JS代码提示功能,非常不错,具有参考借鉴价值,需要的朋友参考下吧
recommend-type

2018最新最详细的在Eclipse上配置Android开发环境文档

2018最新最详细的在Eclipse上配置Android开发环境文档,结合网上众多讲解,精确到每一步操作,需要下载的文件都已准备好,只需点击下载即可.方便易学哦!
recommend-type

Eclipse开发分布式商城系统+完整视频代码及文档!

Eclipse开发分布式商城系统+完整视频代码及文档!这是分布式一部不错的视频。如果想提高java能力的话不妨看看!
recommend-type

搭建Android开发环境和构建第一个Android程序(Eclipse版)

搭建Android开发环境和构建第一个Android程序(Eclipse版)
recommend-type

在Eclipse里关联android源代码的三种方式

第一种方式:source attach 第二种方式:复制platform/frameworks/base/core/java到在AndroidSDK的安装目录下的platforms/android-12下新建sources目录 第三种方式:最全面但最复杂的一种,见文件里的方式
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

spring添加xml配置文件

1. 创建一个新的Spring配置文件,例如"applicationContext.xml"。 2. 在文件头部添加XML命名空间和schema定义,如下所示: ``` <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。