云终端——实现播放广告,拍照上传并上传GPS定位信息,实现远程控制(一)


 

一,司机信息部分

 

信息存放于/mnt/sdcard/driverInfo目录下,由照片文件和一个xml文件组成。

在程序中有对应的Driver.java类与该xml文件对应,并有解析的方法。

 

二,     广告资源解析部分

资源解析模块主要涉及两个类Ad.javaUtils.java

Ad类是对广告类的声明,包括一条广告的内容(类中的字段)

 

在内存卡中的ad文件夹(名称不能修改),包括了所有的广告文件。例如ad_name目录(该名称可随意修改)ad_name中有四个固定的文件夹:

image:存放图片文件和播放控制信息文件config.xml

music:存放音频文件

text 存放文本文件(txt)

video:存放视频文件

 

Utils.java类中有将资源转换为Ad对象的方法:

 

初始化广告列表

public static ArrayList<Ad> initAdList(String path);

 

得到指定目录下的所有广告

public static File[] getAllAd(String path)

 

将一个广告文件转换为一个Ad对象

public static Ad parseAd(File adFile);

 

 

以下为Ad类中字段的定义

private int    type;  //--广告类型,0表示图片1表示视频

    private File[] image; //--图片文件

    private File[] music; //--音频文件

    private File[] text;  //--文本文件

    private File[] video; //--视频文件  

 

config.xml主要是来存放图片播放时循环的次数和循环间隔(毫秒)

 

package com.inspur.android.activity;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.VideoView;

import com.inspur.android.beans.Ad;
import com.inspur.android.beans.AutoImageView;
import com.inspur.android.beans.Driver;
import com.inspur.android.beans.DriverInfoView;
import com.inspur.android..beans.RollTextView;
import com.inspur.android.utils.Utils;
import com.inspur.android.workthread.TakePicThread;
import com.inspur.android.TakeVideoThread;

public class MainActivity extends Activity {
	
	ImageView imageDriver; //--司机图片
	DriverInfoView driverInfoView; // 司机信息
	
	RollTextView rollText;  //--滚动字符
	VideoView videoView;    //--播放视频广告
	AutoImageView imageView;    //--播放图片广告
	
	int currentAd = 0;    //--当前播放的广告在list中的下标
	ArrayList<Ad> adList; //--广告list
	private MediaPlayer mediaPlayer;  //--播放音频
	
	private int videoCurrentPosition;  //视频播放进度
	private int musicCurrentPosition;  //音频播放进度
	
	private static final int PORT_VIDEO   = 6067;  //--录像端口
	public  static final int PORT_PICTURE = 6069;  //--拍照端口
	
	TakePicThread   takePicThread;  //--拍照线程
	TakeVideoThread makeVideoThread;//--录像线程
	
	Driver driver;  //--司机信息
	String driverInfoPath;  //--司机信息路径
	
	Ad ad;   //--临时存放一个ad对象
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        requestWindowFeature(Window.FEATURE_NO_TITLE);      // 隐藏标题
		getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
				WindowManager.LayoutParams.FLAG_FULLSCREEN);// 设置全屏
        
        setContentView(R.layout.main);
        
        init();
        
        if(Utils.hasSDCard()){
        	if(Utils.hasAdFile()){
	    		 setUpViews();       //初始化变量
	             setListener();      //设置监听
	             startThreads();     //开启功能线程
	             play();             //播放广告
        	}else{
        		Toast.makeText(getApplicationContext(), "无Ad文件夹!", Toast.LENGTH_LONG).show();
        	}
        	if(Utils.hasDriverInfoFile()){
        		 setDriverInfo();    //显示司机信息
    		}else{
    			Toast.makeText(getApplicationContext(), "无driverInfo文件夹!", Toast.LENGTH_LONG).show();
    		}
        }else{
        	Toast.makeText(getApplicationContext(), "未安装内存卡!", Toast.LENGTH_LONG).show();
        }
    }
    
    /*初始化各个控件*/
    public void init(){
    	rollText = (RollTextView)findViewById(R.id.rollTextView);
    	videoView = (VideoView)findViewById(R.id.videoView);
    	imageView = (AutoImageView)findViewById(R.id.imageView);
    	imageDriver = (ImageView)findViewById(R.id.imageDriver);
    	driverInfoView = (DriverInfoView)findViewById(R.id.driverInfoViewMain);
    }
    
    /*初始化各个变量等操作*/
    public void setUpViews(){
    	adList = Utils.initAdList(Utils.AD_PATH);
    	
    	for(Ad ad: adList){
    		System.out.println(ad);
    	}
    	
    	mediaPlayer = new MediaPlayer();
    	takePicThread = new TakePicThread(PORT_PICTURE, getApplicationContext());
    	makeVideoThread = new TakeVideoThread(PORT_VIDEO);
    }
    
    /*显示司机信息*/
    public void  setDriverInfo(){
    	
}    
    /*为videoview和mediaplayer设置监听*/
    public void setListener(){
    	videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
			@Override
			public void onCompletion(MediaPlayer mp) {
				
			}
		});
        mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
			@Override
			public void onCompletion(MediaPlayer mp) {
			
			}
		});
        
        imageView.setOnCompletionListener(new AutoImageView.OnCompletionListener() {
			@Override
			public void OnCompletion() {
							
	}
			}
		});
    }
    
    /*播放视频和图片广告*/
    public void play() {
		ad = adList.get(currentAd);
		if (ad != null) {
			switch(ad.getType()){
			case 0:
				palyAudio(ad);//音频类广告
				break;
			case 1:
				playVideo(ad);// 视频类广告
				break;
			case 2:
				playImage(ad);//图片广告
				break;
			}
		}
	}
    
    /*播放视频*/
    public void playVideo(Ad ad){
    	    }
    
    /*播放音频*/
    public void palyAudio(Ad ad){
    	videoView.setVisibility(View.INVISIBLE);
		imageView.setFiles(ad.getImage());
		imageView.setTime(Utils.getImageConfigTime(ad.getImage()[0].getParent()+"/config.xml"));
				mediaPlayer.start(); // 播放
    }
    
    /*播放图片广告*/
    public void playImage(Ad ad){
    	    }
    
    /*开启拍照和录像线程*/
    public void startThreads(){
    	takePicThread.start();
    	makeVideoThread.start();
    }
    
    @Override
	protected void onStart() {
    			}
//    		}
    	}
		super.onStart();
	}

	@Override
	protected void onResume() {
		super.onResume();
	}

	@Override
	protected void onPause() {
		//			}
		}
		super.onPause();
	}

	@Override
	public void onDestroy() {
		super.onDestroy();

				}
		
		Intent startMain = new Intent(Intent.ACTION_MAIN);
		startMain.addCategory(Intent.CATEGORY_HOME);
		startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		startActivity(startMain); 
		System.exit(0);
	}
	
	/*选项菜单*/
	public boolean onCreateOptionsMenu(Menu menu) {
        menu.add(Menu.NONE, Menu.FIRST + 1, 1, "前置").setIcon(
        		android.R.drawable.ic_menu_info_details);
        menu.add(Menu.NONE, Menu.FIRST + 6, 6, "后置录像").setIcon(
       
 		android.R.drawable.ic_menu_send);
        return true;
    }
	
	/*按钮点击事件*/
	 public boolean onOptionsItemSelected(MenuItem item) {
	      	
      
           、return false;
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值