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

    实验报告

    课程名称

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

    实验日期

    2016年4月15日

    实验项目名称

    在应用程序中播放音频和视频

    实验地点

    S30010

    实验类型

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

    学    时

    2

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

    1.目的:实现在应用程序中处理音频和视频。

    2.要求:实现播放音频,音频播放控制;

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

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

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

    (1)PC机

    (2)操作系统:Windows XP

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

    三、实验内容及步骤

    1)新建工程

    2)修改布局文件main.xml

    3)完善Activity类

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

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

    代码:

    musicplayer的activity_main.xml的代码:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

          xmlns:tools="http://schemas.android.com/tools"

          android:layout_width="match_parent"

          android:layout_height="match_parent"

          android:paddingBottom="@dimen/activity_vertical_margin"

          android:paddingLeft="@dimen/activity_horizontal_margin"

          android:paddingRight="@dimen/activity_horizontal_margin"

          android:paddingTop="@dimen/activity_vertical_margin"

          tools:context=".MainActivity"   >

     

        <TextView

            android:id="@+id/textView1"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_alignParentTop="true"

            android:layout_centerHorizontal="true"

            android:layout_marginTop="14dp"

            android:text="@string/hello_world"

            android:textSize="50px"   />

     

        <Button

            android:id="@+id/button1"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_alignLeft="@+id/button2"

            android:layout_alignRight="@+id/textView1"

            android:layout_below="@+id/textView1"

            android:layout_marginTop="30dp"

            android:text="播放源文件中的音乐" />

     

        <Button

            android:id="@+id/button2"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_alignLeft="@+id/button4"

            android:layout_alignRight="@+id/textView1"

            android:layout_below="@+id/button1"

            android:layout_marginTop="25dp"

            android:text="播放本地文件系统中的音乐" />

     

        <Button

            android:id="@+id/button3"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_alignLeft="@+id/button2"

            android:layout_alignRight="@+id/button1"

            android:layout_below="@+id/button2"

            android:layout_marginTop="20dp"

            android:text="播放网络上的音乐" />

     

        <Button

            android:id="@+id/button6"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_alignBottom="@+id/button5"

            android:layout_alignParentRight="true"

            android:layout_marginRight="18dp"

            android:text="退出" />

     

        <Button

            android:id="@+id/button4"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_below="@+id/button3"

            android:layout_marginTop="20dp"

            android:layout_toLeftOf="@+id/button5"

            android:text="停止播放" />

     

        <Button

            android:id="@+id/button5"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_alignBaseline="@+id/button4"

            android:layout_alignBottom="@+id/button4"

            android:layout_toLeftOf="@+id/button6"

            android:text="播放视频" />

     

        <TextView

            android:id="@+id/textView2"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_alignLeft="@+id/textView1"

            android:layout_below="@+id/button4"

            android:layout_marginTop="42dp"

            android:text="TextView"   />

     

    </RelativeLayout>

    musicplayer的MainActivity.java的部分代码:

    package   com.example.musicplayer;

    import   java.io.File;

    import   java.io.IOException;

    import   com.example.musicplayer.MainActivity;

    import   android.media.MediaPlayer;

    import   android.net.Uri;

    import   android.os.Bundle;

    import   android.os.Environment;

    import   android.annotation.SuppressLint;

    import   android.app.Activity;

    import   android.content.Intent;

    import   android.util.Log;

    import   android.view.Menu;

    import   android.view.View;

    import   android.view.View.OnClickListener;

    import   android.widget.Button;

    import android.widget.TextView;

    public   class MainActivity extends Activity {

        Button   source,local,network,stop,video,exit;

        private MediaPlayer mediaplayer=new   MediaPlayer();

        private File file;

        private TextView tv;

        private String uri="http://play.baidu.com/?__m=mboxCtrl.playSong&__a=73923261&__o=/song/104261||yyr_singleSong||yyr&fr=-1||music.baidu.com||yyr#";

       @Override

       protected void onCreate(Bundle   savedInstanceState) {

           super.onCreate(savedInstanceState);

           setContentView(R.layout.activity_main);

          

           tv=(TextView)findViewById(R.id.textView1);

           source=(Button)findViewById(R.id.button1);

           local=(Button)findViewById(R.id.button2);

           network=(Button)findViewById(R.id.button3);

           stop=(Button)findViewById(R.id.button4);

           video=(Button)findViewById(R.id.button5);

           exit=(Button)findViewById(R.id.button6);

       //  file   = new   File(Environment.getExternalStorageDirectory().getPath()+"/nanLive.mp3");

    //     if (file.exists()) {

    //        mediaplayer=MediaPlayer.create(MainActivity.this,   Uri.parse(file.getAbsolutePath()));

    //       

    //     }else {

    //        tv.setText("要播放的文件不存在!");

    //     }

           source.setOnClickListener(new   OnClickListener(){

              @Override

              public void onClick(View arg0) {

                  // TODO Auto-generated method   stub

                  mediaplayer=MediaPlayer.create(MainActivity.this,   R.raw.model);

                  mediaplayer.start();

                  tv.setText("正在播放音乐");

              }

             

           });

           stop.setOnClickListener(new   OnClickListener(){

              @Override

              public void onClick(View arg0) {

                  // TODO Auto-generated method   stub

                  if(mediaplayer.isPlaying()){

                  mediaplayer.stop();

                  tv.setText("停止播放音乐");

                  }

              }

             

           });

           local.setOnClickListener(new   OnClickListener() {

             

              @SuppressLint("SdCardPath")   @Override

              public void onClick(View arg0) {

                  // TODO Auto-generated method   stub

                  try {

                     mediaplayer.reset();

                     Log.i("abBFKhkrhwu",   "vlgdangjdije");

                     mediaplayer.setDataSource("/sdcard/model.mp3");

                     //mediaplayer.create(MainActivity.this,   Uri.parse(file.getAbsolutePath()));

                     mediaplayer.prepare();

                     mediaplayer.start();

                     Log.i("addddddddddddddddddddddddddddddd",   "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");

                     tv.setText("正在播放SD卡上的音乐");

                  } catch (IllegalStateException   e) {

                     // TODO Auto-generated catch   block

                     e.printStackTrace();

                  } catch (IOException e) {

                     // TODO Auto-generated catch   block

                     e.printStackTrace();

                  }     

           }

           });

           network.setOnClickListener(new   OnClickListener(){

           @Override

           public void onClick(View arg0) {

              // TODO Auto-generated method stub

              mediaplayer.reset();

              try{

                  mediaplayer.setDataSource(uri);

              }catch(IllegalStateException e) {

                  // TODO Auto-generated catch   block

                  e.printStackTrace();

              } catch (IOException e) {

                  // TODO Auto-generated catch   block

                  e.printStackTrace();

              }

              tv.setText("正在播放网络上的音乐");

              Intent intent=new   Intent(Intent.ACTION_VIEW,Uri.parse(uri));

              startActivity(intent);

           }

              

           });

           exit.setOnClickListener(new   OnClickListener(){

           @Override

           public void onClick(View arg0) {

              // TODO Auto-generated method stub

              System.exit(0);

           }

              

           });

           video.setOnClickListener(new   OnClickListener(){

           @Override

           public void onClick(View arg0) {

              // TODO Auto-generated method stub

              Intent vi=new Intent();

              vi.setClass(MainActivity.this,   video.class);

              startActivity(vi);

              finish();

           }

              

           });

         

       }

        protected void onDestroy() {

              // TODO Auto-generated method stub

            if(mediaplayer!=null){

               mediaplayer.release();

            }

          

           super.onDestroy();

           }

       @Override

       public boolean onCreateOptionsMenu(Menu   menu) {

           // Inflate the menu; this adds items to   the action bar if it is present.

           getMenuInflater().inflate(R.menu.main,   menu);

           return true;

       }

    }

    运行结果:(截图)

    1. musicplayer项目效果图:

                                                                                

               

        

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

    通过这一次的实验,我基本掌握了如何去设置一个播放器的基本功能,在实验过程中遇到很多不理解和不懂得问题,通过书本的例题,我慢慢地解决一个又一个的问题,而且我也学到了不同路径的音乐,所用的方法也是不一样的,并且在实验过程中忘记了权限的问题,所以sd卡的内容播放不了,所以做实验也需要细心。

    实验评语

     

    实验成绩

     

    指导教师签名:              年   月   日

               
  • 相关阅读:
    翻译连载 |《你不知道的JS》姊妹篇 |《JavaScript 轻量级函数式编程》 第 6 章:值的不可变性
    翻译 | 带你秒懂内存管理 第一部(共三部)
    基于 Electron 的爬虫框架 Nightmare
    微信小程序教学第三章(含视频):小程序中级实战教程:列表静态页面制作
    翻译 | 使用AFrame打造WebVR版《我的世界》
    微信小程序教学第三章第三节(含视频):小程序中级实战教程:视图与数据关联
    翻译 | 玩转 React 表单 —— 受控组件详解
    翻译连载 |《你不知道的JS》姊妹篇 |《JavaScript 轻量级函数式编程》 第 5 章:减少副作用
    翻译连载 |《你不知道的JS》姊妹篇 |《JavaScript 轻量级函数式编程》 第 2 章:函数基础
    一张图告诉你移动Web前端所有技术(工程化、预编译、自动化)
  • 原文地址:https://www.cnblogs.com/xy1015/p/5415686.html
Copyright © 2011-2022 走看看