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程序。

    实验评语

     

    实验成绩

     

    指导教师签名:              年   月   日

               
  • 相关阅读:
    [saiku] 系统登录成功后查询Cubes
    216. Combination Sum III
    215. Kth Largest Element in an Array
    214. Shortest Palindrome
    213. House Robber II
    212. Word Search II
    211. Add and Search Word
    210. Course Schedule II
    分硬币问题
    开始学习Python
  • 原文地址:https://www.cnblogs.com/cckuang/p/5419155.html
Copyright © 2011-2022 走看看