您的位置 首页 > 德语词汇

videoplayer是什么意思、读音 MediaPlayer播放音频与视频

大家好,今天给各位分享videoplayer是什么意思、读音的一些知识,其中也会对MediaPlayer播放音频与视频进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

1)获得MediaPlayer实例:

可以直接new或者调用create方法创建:

videoplayer是什么意思、读音 MediaPlayer播放音频与视频

MediaPlayermp=newMediaPlayer();\nMediaPlayermp=MediaPlayer.create(this,R.raw.test);//无需再调用setDataSource\n

另外create还有这样的形式:create(Contextcontext,Uriuri,SurfaceHolderholder)通过Uri和指定SurfaceHolder【抽象类】创建一个多媒体播放器

2)设置播放文件:

//①raw下的资源:\nMediaPlayer.create(this,R.raw.test);\n//②本地文件路径:\nmp.setDataSource("/sdcard/test.mp3");\n//③网络URL文件:\nmp.setDataSource("http://www.xxx.com/music/test.mp3");\n

另外setDataSource()方法有多个,里面有这样一个类型的参数:FileDescriptor,在使用这个API的时候,需要把文件放到res文件夹平级的assets文件夹里,然后使用下述代码设置DataSource:

AssetFileDescriptorfileDescriptor=getAssets().openFd("rain.mp3");\nm_mediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(),fileDescriptor.getStartOffset(),fileDescriptor.getLength());\n

3)其他方法

示例一:使用MediaPlayer播放音频:

publicclassMainActivityextendsAppCompatActivityimplementsView.OnClickListener{\nprivateButtonbtn_play;\nprivateButtonbtn_pause;\nprivateButtonbtn_stop;\nprivateMediaPlayermPlayer=null;\nprivatebooleanisRelease=true;//判断是否MediaPlayer是否释放的标志\n@Override\nprotectedvoidonCreate(BundlesavedInstanceState){\nsuper.onCreate(savedInstanceState);\nsetContentView(R.layout.activity_main);\nbindViews();\n}\nprivatevoidbindViews(){\nbtn_play=(Button)findViewById(R.id.btn_play);\nbtn_pause=(Button)findViewById(R.id.btn_pause);\nbtn_stop=(Button)findViewById(R.id.btn_stop);\nbtn_play.setOnClickListener(this);\nbtn_pause.setOnClickListener(this);\nbtn_stop.setOnClickListener(this);\n}\n@Override\npublicvoidonClick(Viewv){\nswitch(v.getId()){\ncaseR.id.btn_play:\nif(isRelease){\nmPlayer=MediaPlayer.create(this,R.raw.fly);\nisRelease=false;\n}\nmPlayer.start();//开始播放\nbtn_play.setEnabled(false);\nbtn_pause.setEnabled(true);\nbtn_stop.setEnabled(true);\nbreak;\ncaseR.id.btn_pause:\nmPlayer.pause();//停止播放\nbtn_play.setEnabled(true);\nbtn_pause.setEnabled(false);\nbtn_stop.setEnabled(false);\nbreak;\ncaseR.id.btn_stop:\nmPlayer.reset();//重置MediaPlayer\nmPlayer.release();//释放MediaPlayer\nisRelease=true;\nbtn_play.setEnabled(true);\nbtn_pause.setEnabled(false);\nbtn_stop.setEnabled(false);\nbreak;\n}\n}\n}\n

注意事项:

播放的是res/raw目录下的音频文件,创建MediaPlayer调用的是create方法,第一次启动播放前不需要再调用prepare(),如果是使用构造方法构造的话,则需要调用一次prepare()方法!另外贴下官方文档中,从其他两种途径播放音频的示例代码:

UrimyUri=....;//initializeUrihere\nMediaPlayermediaPlayer=newMediaPlayer();\nmediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);\nmediaPlayer.setDataSource(getApplicationContext(),myUri);\nmediaPlayer.prepare();\nmediaPlayer.start();\n

外部URL

Stringurl="http://........";//yourURLhere\nMediaPlayermediaPlayer=newMediaPlayer();\nmediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);\nmediaPlayer.setDataSource(url);\nmediaPlayer.prepare();//mighttakelong!(forbuffering,etc)\nmediaPlayer.start();\n

Note:假如你通过一个URL以流的形式播放在线音频文件,该文件必须可以进行渐进式下载

示例二:使用MediaPlayer播放视频

MediaPlayer主要用于播放音频,没有提供图像输出界面,所以我们需要借助其他的组件来显示MediaPlayer播放的图像输出,我们可以使用用SurfaceView来显示,下面我们使用SurfaceView来写个视频播放的例子:

布局文件:activity_main.xml

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"\nandroid:layout_width="match_parent"\nandroid:layout_height="match_parent"\nandroid:orientation="vertical"\nandroid:padding="5dp">\n<SurfaceView\nandroid:id="@+id/sfv_show"\nandroid:layout_width="match_parent"\nandroid:layout_height="300dp"/>\n<Button\nandroid:id="@+id/btn_start"\nandroid:layout_width="wrap_content"\nandroid:layout_height="wrap_content"\nandroid:text="开始"/>\n<Button\nandroid:id="@+id/btn_pause"\nandroid:layout_width="wrap_content"\nandroid:layout_height="wrap_content"\nandroid:text="暂停"/>\n<Button\nandroid:id="@+id/btn_stop"\nandroid:layout_width="wrap_content"\nandroid:layout_height="wrap_content"\nandroid:text="终止"/>\n\n</LinearLayout>\n

MainActivity.java

publicclassMainActivityextendsAppCompatActivityimplementsView.OnClickListener,SurfaceHolder.Callback{\nprivateMediaPlayermPlayer=null;\nprivateSurfaceViewsfv_show;\nprivateSurfaceHoldersurfaceHolder;\nprivateButtonbtn_start;\nprivateButtonbtn_pause;\nprivateButtonbtn_stop;\n@Override\nprotectedvoidonCreate(BundlesavedInstanceState){\nsuper.onCreate(savedInstanceState);\nsetContentView(R.layout.activity_main);\nbindViews();\n}\nprivatevoidbindViews(){\nsfv_show=(SurfaceView)findViewById(R.id.sfv_show);\nbtn_start=(Button)findViewById(R.id.btn_start);\nbtn_pause=(Button)findViewById(R.id.btn_pause);\nbtn_stop=(Button)findViewById(R.id.btn_stop);\nbtn_start.setOnClickListener(this);\nbtn_pause.setOnClickListener(this);\nbtn_stop.setOnClickListener(this);\n//初始化SurfaceHolder类,SurfaceView的控制器\nsurfaceHolder=sfv_show.getHolder();\nsurfaceHolder.addCallback(this);\nsurfaceHolder.setFixedSize(320,220);//显示的分辨率,不设置为视频默认\n}\n@Override\npublicvoidonClick(Viewv){\nswitch(v.getId()){\ncaseR.id.btn_start:\nmPlayer.start();\nbreak;\ncaseR.id.btn_pause:\nmPlayer.pause();\nbreak;\ncaseR.id.btn_stop:\nmPlayer.stop();\nbreak;\n}\n}\n@Override\npublicvoidsurfaceCreated(SurfaceHolderholder){\nmPlayer=MediaPlayer.create(MainActivity.this,R.raw.lesson);\nmPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);\nmPlayer.setDisplay(surfaceHolder);//设置显示视频显示在SurfaceView上\n}\n@Override\npublicvoidsurfaceChanged(SurfaceHolderholder,intformat,intwidth,intheight){}\n@Override\npublicvoidsurfaceDestroyed(SurfaceHolderholder){}\n@Override\nprotectedvoidonDestroy(){\nsuper.onDestroy();\nif(mPlayer.isPlaying()){\nmPlayer.stop();\n}\nmPlayer.release();\n}\n}\n

代码很简单,布局有个SurfaceView,然后调用getHolder获得一个SurfaceHolder对象,在这里完成SurfaceView相关的设置,设置了显示的分辨率以及一个Callback接口,重写了SurfaceView创建时,发生变化时,以及销毁时的三个方法!然后按钮控制播放以及暂停而已~

示例三:使用VideoView播放视频

除了使用MediaPlayer+SurfaceView播放视频的方式,我们还可以使用VideoView来直接播放视频,我们稍微改点东西就可以实现视频播放!运行效果和上面的一致,就不贴了,直接上代码!

MainActivity.java

publicclassMainActivityextendsAppCompatActivityimplementsView.OnClickListener{\nprivateVideoViewvideoView;\nprivateButtonbtn_start;\nprivateButtonbtn_pause;\nprivateButtonbtn_stop;\n@Override\nprotectedvoidonCreate(BundlesavedInstanceState){\nsuper.onCreate(savedInstanceState);\nsetContentView(R.layout.activity_main);\nbindViews();\n}\n\nprivatevoidbindViews(){\nvideoView=(VideoView)findViewById(R.id.videoView);\nbtn_start=(Button)findViewById(R.id.btn_start);\nbtn_pause=(Button)findViewById(R.id.btn_pause);\nbtn_stop=(Button)findViewById(R.id.btn_stop);\nbtn_start.setOnClickListener(this);\nbtn_pause.setOnClickListener(this);\nbtn_stop.setOnClickListener(this);\n\n//根据文件路径播放\nif(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){\nvideoView.setVideoPath(Environment.getExternalStorageDirectory()+"/lesson.mp4");\n}\n//读取放在raw目录下的文件\n//videoView.setVideoURI(Uri.parse("android.resource://com.jay.videoviewdemo/"+R.raw.lesson));\nvideoView.setMediaController(newMediaController(this));\n}\n@Override\npublicvoidonClick(Viewv){\nswitch(v.getId()){\ncaseR.id.btn_start:\nvideoView.start();\nbreak;\ncaseR.id.btn_pause:\nvideoView.pause();\nbreak;\ncaseR.id.btn_stop:\nvideoView.stopPlayback();\nbreak;\n}\n}\n}\n

代码非常简单,就不解释了~有疑问的自己下个Demo运行下即可~

好的,本节跟大家简单的介绍了下如何使用MediaPlayer播放音频以及结合SurfaceView来播放视频,最后还写了一个用VideoView播放视频的例子,都是些非常简单的用法~相信大家学习起来非常简单~嗯

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023