【目的】java
實如今應用程序中處理音頻和視頻。android
【要求】服務器
1.實現播放音頻,音頻播放控制;網絡
2.實現播放視頻,視頻播放控制;app
3.使用Service服務播放項目源文件中的音樂。ide
【原來】佈局
Android多媒體處理機制。測試
【過程】this
1.新建工程Mediaplayer;spa
2.修改佈局文件activity_main,添加videoview.xml文件;
3.修改MainActivity.java,新建VideoActivity.java;
4.新建MusicService類,使用Service 服務器播放項目源文件中的音樂,實現後臺繼續播放音頻。
5.代碼
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" android:background="#bbbbbb" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button4" android:layout_alignRight="@+id/button6" android:gravity="center" android:text="測試多媒體播放" android:textSize="45px" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textView1" android:layout_alignRight="@+id/button6" android:layout_below="@+id/textView1" android:text="播放源文件中的音樂" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button1" android:layout_alignRight="@+id/button6" android:layout_below="@+id/button1" 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/button6" android:layout_below="@+id/button2" android:text="播放網絡上的音樂" /> <Button android:id="@+id/button6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/button5" android:layout_alignBottom="@+id/button5" android:layout_toRightOf="@+id/button5" android:text="退出" /> <Button android:id="@+id/button4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/button3" android:layout_toLeftOf="@+id/button5" android:text="中止播放" /> <Button android:id="@+id/button5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/button3" android:layout_centerHorizontal="true" android:text="播放視屏" /> </RelativeLayout>
videoview.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#bbbbbb" android:orientation="vertical" > <VideoView android:id="@+id/videoView1" android:layout_width="match_parent" android:layout_height="500px" /> </LinearLayout>
MainActivity.java代碼
package com.example.mediaplayer; import android.media.MediaPlayer; import android.os.Bundle; import android.app.Activity; import android.content.Intent; 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 { private TextView tv; private Button source,local,net,stopbtn,startbtn,exitbtn; private MediaPlayer soutceMP = new MediaPlayer(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); source=(Button)findViewById(R.id.button1); local=(Button)findViewById(R.id.button2); net=(Button)findViewById(R.id.button3); stopbtn=(Button)findViewById(R.id.button4); startbtn=(Button)findViewById(R.id.button5); exitbtn=(Button)findViewById(R.id.button6); tv=(TextView)findViewById(R.id.textView1); final Intent startsv = new Intent(); source.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub startsv.setClass(MainActivity.this, MusicService.class); } }); local.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub } }); net.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub } }); stopbtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub } }); startbtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub } }); exitbtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub } }); } @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; } }
【運行結果】
【心得體會】
經過此次實驗,學會了如何實如今應用程序中處理音頻和視頻。