zoukankan      html  css  js  c++  java
  • 实验6 在应用程序中播放音频和视频

    实验报告

    课程名称

    基于Android平台移动互联网开发

    实验日期

    2016年4月15日

    实验项目名称

    设计一个简单登陆界面

    实验地点

    S3010

    实验类型

    □验证型    √设计型    □综合型

    学  时

    4

    一、实验目的及要求(本实验所涉及并要求掌握的知识点)

    【目的】

    实现在应用程序中处理音频和视频。

    【要求】

    1)实现播放音频,音频播放控制;

    2)实现播放视频,视频播放控制;

    3)使用Service服务播放项目源文件中的音乐。

     

    二、实验环境(本实验所使用的硬件设备和相关软件)

    (1)PC机

    (2)操作系统:Windows XP

    (3)软件: Eclipse, JDK1.6,Android SDK,ADT

    三、实验内容及步骤

    1)新建工程Music

    2)修改布局文件activity_main.xml,添加videoview.xml文件

    3)修改MainActivity.java,新建 VideoViewActivity.java

    4)新建MusicService类,使用Service服务播放项目源文件中的音乐,实现后台继续能播放音频。

     

    四、实验结果(本实验源程序清单及运行结果或实验结论、实验设计图)

    代码:

    HelpActivity

    package com.example.sukodu;
    
    import java.io.File;
    import java.io.IOException;
    
    import android.annotation.SuppressLint;
    import android.app.ActionBar;
    import android.app.Activity;
    import android.content.Intent;
    import android.media.MediaPlayer;
    import android.os.Bundle;
    import android.os.Environment;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.MediaController;
    import android.widget.Toast;
    import android.widget.VideoView;
    
    public class HelpActivity extends Activity {
    
        Button btnMusics, btnPause, btnStop, btnLocalmc, btnsermcst, btnsermcsp,btnvedio;
        MediaPlayer mplayer = new MediaPlayer();
        VideoView vediov;
        Intent itse = new Intent();
    
        boolean start = true;
        File file;
    
        @SuppressLint({ "NewApi", "CutPasteId" })
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.help);
            ActionBar abar = getActionBar();
            btnMusics = (Button) findViewById(R.id.help_sourcemusic);
            btnPause = (Button) findViewById(R.id.help_pause);
            btnsermcst = (Button) findViewById(R.id.help_servermusic);
            btnsermcsp = (Button) findViewById(R.id.help_serverstop);
            btnStop = (Button) findViewById(R.id.help_stop);
            btnLocalmc = (Button) findViewById(R.id.help_localemusic);
            vediov=(VideoView) findViewById(R.id.helpVideo);
            btnvedio=(Button) findViewById(R.id.help_vedio);
            abar.setDisplayShowHomeEnabled(true);
            abar.setDisplayHomeAsUpEnabled(true);
            btnvedio.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    MediaController mc=new MediaController(HelpActivity.this);
                    File file=new File(Environment.getExternalStorageDirectory().getPath()+"/aabb.mp4");
                    vediov.setVideoPath(file.getAbsolutePath());
                    vediov.setMediaController(mc);
                    vediov.requestFocus();
    
                    vediov.start();
            
                }
            });
            btnPause.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    if (mplayer.isPlaying()) {
                        mplayer.pause();
                    }
                }
            });
            btnStop.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    if (mplayer.isPlaying()) {
                        mplayer.stop();
                        start = true;
                    }
    
                }
            });
            btnLocalmc.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    file = new File(
                            Environment.getExternalStorageDirectory().getPath()+"/nanshannan.mp3");
                    try {
                        mplayer.reset();
                        mplayer.setDataSource(file.getAbsolutePath());
                        Toast.makeText(HelpActivity.this, file.getAbsolutePath(),
                                Toast.LENGTH_LONG).show();
    
                        mplayer.prepare();
                        mplayer.start();
    
                    } catch (IllegalArgumentException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (SecurityException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IllegalStateException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            });
            btnMusics.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    if (mplayer == null || start) {
                        mplayer.reset();
                        mplayer = new MediaPlayer();
                        mplayer = MediaPlayer.create(HelpActivity.this,
                                R.raw.nanshannan);
                        mplayer.start();
                        start = false;
                    } else if (mplayer != null) {
                        mplayer.start();
                    }
                }
            });
            btnsermcst.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    itse.setClass(HelpActivity.this, MyService.class);
                    startService(itse);
                }
            });
            btnsermcsp.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    stopService(itse);
                }
            });
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // TODO Auto-generated method stub
            getMenuInflater().inflate(R.menu.actionbar, menu);
            return super.onCreateOptionsMenu(menu);
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // TODO Auto-generated method stub
            Intent intent = getIntent();
            switch (item.getItemId()) {
            case android.R.id.home: {
                finish();
                break;
            }
            case R.id.about: {
                intent.setClass(this, SecondActivity.class);
                startActivity(intent);
                finish();
                break;
            }
            case R.id.newgame: {
                intent.setClass(this, GamesActivity.class);
                startActivity(intent);
                finish();
                break;
            }
            default: {
                break;
            }
            }
            return super.onOptionsItemSelected(item);
        }
    
        @Override
        protected void onDestroy() {
            // TODO Auto-generated method stub
            if (mplayer.isPlaying()) {
                mplayer.stop();
            }
            if(vediov.isPlaying()){
                vediov.stopPlayback();
            }
    
            super.onDestroy();
        }
    
    }

    MyService

    package com.example.sukodu;
    
    import android.app.Service;
    import android.content.Intent;
    import android.media.MediaPlayer;
    import android.media.MediaPlayer.OnCompletionListener;
    import android.os.IBinder;
    
    public class MyService extends Service{
        MediaPlayer mplayer;
        boolean start = true;
        @Override
        public IBinder onBind(Intent arg0) {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public void onCreate() {
            // TODO Auto-generated method stub
    
                mplayer = new MediaPlayer();
                mplayer = MediaPlayer.create(this,R.raw.nanshannan);
                 mplayer.setOnCompletionListener(new OnCompletionListener() {
                    
                    @Override
                    public void onCompletion(MediaPlayer mp) {
                        // TODO Auto-generated method stub
                        
                    }
                });
            super.onCreate();
        }
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // TODO Auto-generated method stub
        mplayer.start();
        return super.onStartCommand(intent, flags, startId);
    }
    
     public void onDestroy() {
        // TODO Auto-generated method stub
         mplayer.stop();
        super.onDestroy();
    }
    
    
    
    }

    运行结果:(截图)

     

     

    五、实验总结(对本实验结果进行分析,实验心得体会及改进意见)

        经过本次的实验,对Android应用程序的结构有了一定的了解,从中懂得了一些安卓界面结构的编写方法,但对于android的具体结构了解还是很表面,日后需要多看,多练编写android程序。

    实验评语

     

    实验成绩

     

    指导教师签名:              年   月   日

               
  • 相关阅读:
    Http系列目录
    C# 锁系列目录
    RabbitMQ系列目录
    Zookeeper系列目录
    Spring Boot系列目录
    SOAP系列目录
    DynamicProxy系列目录
    网络通信系列目录
    分析windows .net程序dump文件的两种方式
    Code Review Checklist
  • 原文地址:https://www.cnblogs.com/cckuang/p/5419155.html
Copyright © 2011-2022 走看看