实验6 在应用程序中播放音频和视频
實(shí)驗(yàn)報(bào)告
| 課程名稱 | 基于Android平臺(tái)移動(dòng)互聯(lián)網(wǎng)開發(fā) | 實(shí)驗(yàn)日期 | 2016年4月15日 | ||
| 實(shí)驗(yàn)項(xiàng)目名稱 | 設(shè)計(jì)一個(gè)簡(jiǎn)單登陸界面 | 實(shí)驗(yàn)地點(diǎn) | S3010 | ||
| 實(shí)驗(yàn)類型 | □驗(yàn)證型??? √設(shè)計(jì)型??? □綜合型 | 學(xué)? 時(shí) | 4 | ||
| 一、實(shí)驗(yàn)?zāi)康募耙?/strong>(本實(shí)驗(yàn)所涉及并要求掌握的知識(shí)點(diǎn)) | |||||
| 【目的】 實(shí)現(xiàn)在應(yīng)用程序中處理音頻和視頻。 【要求】 1)實(shí)現(xiàn)播放音頻,音頻播放控制; 2)實(shí)現(xiàn)播放視頻,視頻播放控制; 3)使用Service服務(wù)播放項(xiàng)目源文件中的音樂。 ? | |||||
| 二、實(shí)驗(yàn)環(huán)境(本實(shí)驗(yàn)所使用的硬件設(shè)備和相關(guān)軟件) | |||||
| (1)PC機(jī) (2)操作系統(tǒng):Windows XP (3)軟件: Eclipse, JDK1.6,Android SDK,ADT | |||||
| 三、實(shí)驗(yàn)內(nèi)容及步驟 | |||||
| 1)新建工程Music 2)修改布局文件activity_main.xml,添加videoview.xml文件 3)修改MainActivity.java,新建 VideoViewActivity.java 4)新建MusicService類,使用Service服務(wù)播放項(xiàng)目源文件中的音樂,實(shí)現(xiàn)后臺(tái)繼續(xù)能播放音頻。 ? | |||||
| 四、實(shí)驗(yàn)結(jié)果(本實(shí)驗(yàn)源程序清單及運(yùn)行結(jié)果或?qū)嶒?yàn)結(jié)論、實(shí)驗(yàn)設(shè)計(jì)圖) | |||||
| 代碼: 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() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubMediaController 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() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubif (mplayer.isPlaying()) {mplayer.pause();}}});btnStop.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubif (mplayer.isPlaying()) {mplayer.stop();start = true;}}});btnLocalmc.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubfile = 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() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubif (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() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubitse.setClass(HelpActivity.this, MyService.class);startService(itse);}});btnsermcsp.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub stopService(itse);}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// TODO Auto-generated method stub getMenuInflater().inflate(R.menu.actionbar, menu);return super.onCreateOptionsMenu(menu);}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// TODO Auto-generated method stubIntent 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);}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubif (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;@Overridepublic IBinder onBind(Intent arg0) {// TODO Auto-generated method stubreturn null;}@Overridepublic void onCreate() {// TODO Auto-generated method stub mplayer = new MediaPlayer();mplayer = MediaPlayer.create(this,R.raw.nanshannan);mplayer.setOnCompletionListener(new OnCompletionListener() {@Overridepublic 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(); }}? 運(yùn)行結(jié)果:(截圖) ? ? ? | |||||
| 五、實(shí)驗(yàn)總結(jié)(對(duì)本實(shí)驗(yàn)結(jié)果進(jìn)行分析,實(shí)驗(yàn)心得體會(huì)及改進(jìn)意見) | |||||
| ?? ?經(jīng)過本次的實(shí)驗(yàn),對(duì)Android應(yīng)用程序的結(jié)構(gòu)有了一定的了解,從中懂得了一些安卓界面結(jié)構(gòu)的編寫方法,但對(duì)于android的具體結(jié)構(gòu)了解還是很表面,日后需要多看,多練編寫android程序。 | |||||
| 實(shí)驗(yàn)評(píng)語 | ? | ||||
| 實(shí)驗(yàn)成績(jī) | ? | 指導(dǎo)教師簽名:????????????? 年?? 月?? 日 | |||
| ? | ? | ? | ? | ? | ? |
轉(zhuǎn)載于:https://www.cnblogs.com/cckuang/p/5419155.html
總結(jié)
以上是生活随笔為你收集整理的实验6 在应用程序中播放音频和视频的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在单链表的第i个位置后插入一个节点(阿里
- 下一篇: 最大流部分