安卓视频播放器完整项目

安卓视频播放器完整项目

2023年7月7日发(作者:)

安卓视频播放器

该项目是自己学习阶段研发的,如果有什么不足之处,希望还能共同探,按钮和背景图片,还需要自己找,下面上代码

欢迎动画,文件

package ;

import ty;

import ;

import ;

import ;

import Manager;

public class WelcomeActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

te(savedInstanceState);

te(savedInstanceState);

requestWindowFeature(E_NO_TITLE);

dow().setFlags(_FULLSCREEN,

}

_FULLSCREEN);

setContentView(e);

new MyWelcome().start();

}

class MyWelcome extends Thread{

@Override

public void run() {

try {

sleep(3000);

Intent intent=new Intent(,);

startActivity(intent);

}

} catch (InterruptedException e) {

// TODO Auto-generated catch block

}

tackTrace();

}

@Override

protected void onStop() {

finish();

();

} 欢迎动画配置文件

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="@drawable/welcome"

android:orientation="vertical" >

三秒后进行跳转,进入界面,利用TabHost,VideoPlayerActivity代码如下

package ;

import iteSimpleCursorAdapter;

import iterSimAdapter;

import ivity;

import t;

import ;

import tFoundException;

import ;

import ;

import Manager;

import Adapter;

import CursorAdapter;

import t;

import hangeListener;

import c;

public class VideoPlayerActivity extends TabActivity {

/** Called when the activity is first created. */

static boolean flag;

@Override

public void onCreate(Bundle savedInstanceState) {

te(savedInstanceState);

requestWindowFeature(E_NO_TITLE);

dow().setFlags(_FULLSCREEN,

_FULLSCREEN);

setContentView();

try {

//获取ShareActivity上下文

t = createPackageContext("",

T_IGNORE_SECURITY);

= redPreferences("setupadapter",

_WORLD_READABLE);

= ();

} catch (NameNotFoundException e) { tackTrace();

}

if (ing("setupadapter", "off").equals("on")) {

flag = true;

}

if (ing("setupadapter", "off").equals("off")) {

flag = false;

}

=new Dbhelper(this, "/mnt/sdcard/", null, 1);

//设置为可读

// =dableDatabase();

TabHost tabHost = getTabHost();

//创建选项卡

TabSpec localVideo=Spec("localvideo");

TabSpec videoList=Spec("videoList");

//设置选项卡名称

icator("加载本地文件");

icator("播放列表");

abChangedListener(new OnTabChangeListener() {

@Override

public void onTabChanged(String tabId) {

// TODO Auto-generated method stub

}

});

Intent intentLocal = new Intent(getApplicationContext(),);

Intent intentList = new Intent(getApplicationContext(),);

tent(intentLocal);

tent(intentList);

// 添加选项卡

(localVideo);

(videoList);

//设置监听

abChangedListener(new OnTabChangeListener() {

@Override

public void onTabChanged(String tabId) {

// TODO Auto-generated method stub

boolean f = ("videoList");

boolean b = ("localvideo");

if (f) {

if (flag) { =dableDatabase();

String sql="select * from videoinfo";

=ry(sql, null);

r=new

OverwriteSimpleCursorAdapter(getApplicationContext(), , ,

new String[]{"path","videoname"},

new int[]{e,ame});

pter(r);

}if(!flag){

=dableDatabase();

String sql="select * from videoinfo";

=ry(sql, null);

SimpleCursorAdapter(getApplicationContext(), r=new

, ,

}

new String[]{"path","videoname"},

new int[]{e,ame});

pter(r);

}

if (b) {

if (flag) {

}

}

OverwriterSimAdapter adapter = new OverwriterSimAdapter(

getApplicationContext(), ems, st,

new String[] { "filename", "icon", "modify" }, new int[] {

_name, , _modify });

pter(adapter);

}if(!flag){

}

SimpleAdapter adapter = new SimpleAdapter(

getApplicationContext(), ems, st,

new String[] { "filename", "icon", "modify" }, new int[] {

_name, , _modify });

pter(adapter);

});

}

@Override

protected void onDestroy() {

// ();

// ();

roy();

} }

配置文件

android:id="@android:id/tabhost"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:padding="5dp">

android:id="@android:id/tabs"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:background="#00000000"

/>

android:id="@android:id/tabcontent"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:padding="5dp" />

遍历内存卡ShowList代码

package ;

import ;

import ist;

import p;

import ;

import ;

import iterSimAdapter;

import ty;

import t;

import tFoundException;

import ;

import ;

import rView; import ClickListener;

import ;

import Layout;

import ew;

import Adapter;

import ew;

import ;

public class ShowList extends Activity {

private TextView filepath;

static ListView filesList;

private Button backButton;

LinearLayout localBack;

// 记录当前的父文件夹

File floderParent;

int i ;

// 记录当前路径下的所有文件夹的文件数组

File[] dirFiles;

static List> listItems ;

public void onCreate(Bundle savedInstanceState) {

te(savedInstanceState);

setContentView(st);

localBack = (LinearLayout)findViewById(ack);

kgroundResource(3);

=new Dbhelper(this, "/mnt/sdcard/", null, 1);

//设置为可读

=dableDatabase();

filesList = (ListView) ewById(ist);

filepath = (TextView) ewById(th);

backButton = (Button) ewById(tton);

=new Dbhelper(this, "/mnt/sdcard/", null, 1);

=dableDatabase();

try {

//获取ShareActivity上下文

= createPackageContext("",

//

//

t

T_IGNORE_SECURITY);

= redPreferences("setupadapter",

_WORLD_READABLE);

= ();

} catch (NameNotFoundException e) {

tackTrace();

}

//对背景进行判断

if (ing("picture", "卡通").equals("卡通")) {

kgroundResource();

}

if (ing("picture", "卡通").equals("风景")) {

kgroundResource(d2);

}

if (ing("picture", "卡通").equals("明星")) {

kgroundResource();

}

// 获取系统的SDCard的目录

File root = new File("/mnt/sdcard/");

// 如果SD卡存在的话

if (()) {

floderParent = root;

}

temClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView adapterView, View view,

int position, long id) {

// 如果用户单击了文件,直接返回,不做任何处理

if (dirFiles[position].isFile()) {

i = position;

if

dirFiles = les();

// 使用当前目录下的全部文件、文件夹来填充ListView

inflateListView(dirFiles);

(dirFiles[position].getPath().endsWith(".3gp")||dirFiles[position].getPath().endsWith(".mp4")

||dirFiles[position].getPath().endsWith(".mp3")||dirFiles[position].getPath().endsWith(".rmvb")) {

/* if

(currentFiles[position].getPath().equals(ing(1))) {

xt(getApplicationContext(), "你妹啊,路径名相同了", 1000).show();

}else{*/

=dableDatabase();

String sqlSelect = "select * from videoinfo where path=?";

new = ry(sqlSelect,

String[]{dirFiles[position].getPath()});

if(!Next()){ // 放入数据库

String sql="insert into videoinfo values(null,?,?)";

L(sql,new

String[]{dirFiles[position].getPath(),dirFiles[position].getName()});

xt(getApplicationContext(), "文件加载成功",

1000).show();

1000).show();

}

}

}else{

}

xt(getApplicationContext(), "路径名相同了",

// }

return;

// 也可自定义扩展打开这个文件等

}

// 获取用户点击的文件夹 下的所有文件

File[] tem = dirFiles[position].listFiles();

if (tem == null || == 0) {

xt(,

"空文件夹", _LONG).show();

} else {

// 获取用户单击的列表项对应的文件夹,设为当前的父文件夹

}

floderParent = dirFiles[position];

// 保存当前的父文件夹内的全部文件和文件夹

dirFiles = tem;

// 再次更新ListView

inflateListView(dirFiles);

});

// 获取上一级目录

lickListener(new kListener() {

@Override

public void onClick(View v) {

try {

if (!onicalPath().equals("/mnt/sdcard")) {

// 获取上一级目录

floderParent = entFile();

// 列出当前目录下的所有文件

dirFiles = les();

// 再次更新ListView

}

/**

inflateListView(dirFiles);

}

} catch (Exception e) {

// TODO: handle exception

}

}

});

* 根据文件夹填充ListView

*

* @param files

*/

private void inflateListView(File[] files) {

listItems = new ArrayList>();

for (int i = 0; i < ; i++) {

Map listItem = new HashMap();

if (files[i].isDirectory()) {

// 如果是文件夹就显示的图片为文件夹的图片

("icon", );

}

if(files[i].isFile()){

//判断是否是视频

if(files[i].getPath().endsWith(".3gp")||files[i].getPath().endsWith(".mp4")||files[i].getPath().endsWith(".mp3")){

if(files[i].getPath().endsWith(".3gp")||files[i].getPath().endsWith(".mp4")){

}

if () {

("icon", files[i].getAbsolutePath());

}

("modify"

,size(files[i].length())+"");

("icon", );

("modify"

,size(files[i].length())+"");

}if (!) {

}

}

}else if(files[i].getPath().endsWith(".mp3")){

("icon", 3);

}else{

("icon", );

}

}

// 添加一个文件名称

("filename", files[i].getName());

(listItem);

// 判断是否使用缩略图

if () {

OverwriterSimAdapter adapter = new OverwriterSimAdapter(

}

, listItems, st,

new String[] { "filename", "icon", "modify" }, new int[] {

_name, , _modify });

pter(adapter);

if(!){

SimpleAdapter adapter = new SimpleAdapter(

}

try {

t("当前路径为:" + onicalPath());

//t("文件如下:");

} catch (Exception e) {

tackTrace();

}

, listItems, st,

new String[] { "filename", "icon", "modify" }, new int[] {

_name, , _modify });

pter(adapter);

public String size(long size){

long mysize;

}

if(size<1024*1024){

mysize = size/1024;

return mysize+"Kb";

}else{

mysize = size/(1024*1024);

}

return mysize+"Mb";

@Override

protected void onRestart() {

if (ing("picture", "卡通").equals("卡通")) {

kgroundResource();

}

}

@Override

protected void onDestroy() {

();

();

roy();

if (ing("picture", "卡通").equals("风景")) {

kgroundResource(d2);

}

if (ing("picture", "卡通").equals("明星")) {

kgroundResource();

}

art();

//

//

}

}

@Override

protected void onStop() {

();

}

配置文件

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical"

android:id="@+id/localback"

>

android:id="@+id/filepath"

android:layout_gravity="center_horizontal"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:textSize="20dip"

/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

>

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信