当前位置: 首页 > news >正文

移动网站建设哪家快做外贸网站有什么用

移动网站建设哪家快,做外贸网站有什么用,二手房网站建设,做微信公众号微网站作者#xff1a;向阳逐梦 Android多媒体中的——MediaPlayer#xff0c;我们可以通过这个API来播放音频和视频该类是Androd多媒体框架中的一个重要组件#xff0c;通过该类#xff0c;我们可以以最小的步骤来获取#xff0c;解码和播放音视频。 它支持三种不同的媒体来源… 作者向阳逐梦 Android多媒体中的——MediaPlayer我们可以通过这个API来播放音频和视频该类是Androd多媒体框架中的一个重要组件通过该类我们可以以最小的步骤来获取解码和播放音视频。 它支持三种不同的媒体来源 本地资源内部的URI比如你可以通过ContentResolver来获取外部URL(流)对于Android所支持的的媒体格式列表 1.相关方法详解 1获得MediaPlayer实例 可以直接new或者调用create方法创建 MediaPlayer mp new MediaPlayer(); MediaPlayer mp MediaPlayer.create(this, R.raw.test); //无需再调用setDataSource /pre另外create还有这样的形式create(Context context, Uri uri, SurfaceHolder holder) 通过Uri和指定 SurfaceHolder 【抽象类】 创建一个多媒体播放器。 2设置播放文件 //①raw下的资源 MediaPlayer.create(this, R.raw.test);//②本地文件路径 mp.setDataSource(/sdcard/test.mp3);//③网络URL文件 mp.setDataSource(http://www.xxx.com/music/test.mp3);另外setDataSource()方法有多个里面有这样一个类型的参数FileDescriptor在使用这个API的时候需要把文件放到res文件夹平级的assets文件夹里然后使用下述代码设置DataSource AssetFileDescriptor fileDescriptor getAssets().openFd(rain.mp3); m_mediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(),fileDescriptor.getStartOffset(), fileDescriptor.getLength());3其他方法 getCurrentPosition( )得到当前的播放位置getDuration() 得到文件的时间getVideoHeight() 得到视频高度getVideoWidth() 得到视频宽度isLooping()是否循环播放isPlaying()是否正在播放pause()暂停prepare()准备(同步)prepareAsync()准备(异步)release() 释放MediaPlayer对象reset()重置MediaPlayer对象seekTo(int msec) 指定播放的位置以毫秒为单位的时间setAudioStreamType(int streamtype) 指定流媒体的类型setDisplay(SurfaceHolder sh) 设置用SurfaceHolder来显示多媒体setLooping(boolean looping) 设置是否循环播放setOnBufferingUpdateListener(MediaPlayer.OnBufferingUpdateListener listener) 网络流媒体的缓冲监听setOnCompletionListener(MediaPlayer.OnCompletionListener listener) 网络流媒体播放结束监听setOnErrorListener(MediaPlayer.OnErrorListener listener) 设置错误信息监听setOnVideoSizeChangedListener(MediaPlayer.OnVideoSizeChangedListener listener) 视频尺寸监听setScreenOnWhilePlaying(boolean screenOn) 设置是否使用SurfaceHolder显示setVolume(float leftVolume, float rightVolume) 设置音量start()开始播放stop()停止播放 2.使用代码示例 示例一使用MediaPlayer播放音频 运行效果图 关键代码 public class MainActivity extends AppCompatActivity implements View.OnClickListener{private Button btn_play;private Button btn_pause;private Button btn_stop;private MediaPlayer mPlayer null;private boolean isRelease true; //判断是否MediaPlayer是否释放的标志Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);bindViews();}private void bindViews() {btn_play (Button) findViewById(R.id.btn_play);btn_pause (Button) findViewById(R.id.btn_pause);btn_stop (Button) findViewById(R.id.btn_stop);btn_play.setOnClickListener(this);btn_pause.setOnClickListener(this);btn_stop.setOnClickListener(this);}Overridepublic void onClick(View v) {switch (v.getId()){case R.id.btn_play:if(isRelease){mPlayer MediaPlayer.create(this,R.raw.fly);isRelease false;}mPlayer.start(); //开始播放btn_play.setEnabled(false);btn_pause.setEnabled(true);btn_stop.setEnabled(true);break;case R.id.btn_pause:mPlayer.pause(); //停止播放btn_play.setEnabled(true);btn_pause.setEnabled(false);btn_stop.setEnabled(false);break;case R.id.btn_stop:mPlayer.reset(); //重置MediaPlayermPlayer.release(); //释放MediaPlayerisRelease true;btn_play.setEnabled(true);btn_pause.setEnabled(false);btn_stop.setEnabled(false);break;}} }注意事项 播放的是res/raw目录下的音频文件创建MediaPlayer调用的是create方法第一次启动播放前不需要再调用prepare()如果是使用构造方法构造的话则需要调用一次prepare()方法另外贴下官方文档中从其他两种途径播放音频的示例代码: 本地Uri Uri myUri ....; // initialize Uri here MediaPlayer mediaPlayer new MediaPlayer(); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mediaPlayer.setDataSource(getApplicationContext(), myUri); mediaPlayer.prepare(); mediaPlayer.start();外部URL String url http://........; // your URL here MediaPlayer mediaPlayer new MediaPlayer(); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mediaPlayer.setDataSource(url); mediaPlayer.prepare(); // might take long! (for buffering, etc) mediaPlayer.start();Note假如你通过一个URL以流的形式播放在线音频文件该文件必须可以进行渐进式下载 示例二使用MediaPlayer播放视频 MediaPlayer主要用于播放音频没有提供图像输出界面所以我们需要借助其他的组件来显示MediaPlayer播放的图像输出我们可以使用用SurfaceView来显示下面我们使用SurfaceView来写个视频播放的例子 运行效果图 实现代码 布局文件activity_main.xml LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticalandroid:padding5dpSurfaceViewandroid:idid/sfv_showandroid:layout_widthmatch_parentandroid:layout_height300dp /Buttonandroid:idid/btn_startandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text开始 /Buttonandroid:idid/btn_pauseandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text暂停 /Buttonandroid:idid/btn_stopandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text终止 //LinearLayoutMainActivity.java public class MainActivity extends AppCompatActivity implements View.OnClickListener, SurfaceHolder.Callback {private MediaPlayer mPlayer null;private SurfaceView sfv_show;private SurfaceHolder surfaceHolder;private Button btn_start;private Button btn_pause;private Button btn_stop;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);bindViews();}private void bindViews() {sfv_show (SurfaceView) findViewById(R.id.sfv_show);btn_start (Button) findViewById(R.id.btn_start);btn_pause (Button) findViewById(R.id.btn_pause);btn_stop (Button) findViewById(R.id.btn_stop);btn_start.setOnClickListener(this);btn_pause.setOnClickListener(this);btn_stop.setOnClickListener(this);//初始化SurfaceHolder类SurfaceView的控制器surfaceHolder sfv_show.getHolder();surfaceHolder.addCallback(this);surfaceHolder.setFixedSize(320, 220); //显示的分辨率,不设置为视频默认}Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_start:mPlayer.start();break;case R.id.btn_pause:mPlayer.pause();break;case R.id.btn_stop:mPlayer.stop();break;}}Overridepublic void surfaceCreated(SurfaceHolder holder) {mPlayer MediaPlayer.create(MainActivity.this, R.raw.lesson);mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);mPlayer.setDisplay(surfaceHolder); //设置显示视频显示在SurfaceView上}Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}Overridepublic void surfaceDestroyed(SurfaceHolder holder) {}Overrideprotected void onDestroy() {super.onDestroy();if (mPlayer.isPlaying()) {mPlayer.stop();}mPlayer.release();} }代码很简单布局有个SurfaceView然后调用getHolder获得一个SurfaceHolder对象在这里完成SurfaceView相关的设置设置了显示的分辨率以及一个Callback接口重写了SurfaceView创建时发生变化时以及销毁时的三个方法然后按钮控制播放以及暂停而已。 示例三使用VideoView播放视频 除了使用MediaPlayer SurfaceView播放视频的方式我们还可以使用VideoView来直接播放视频我们稍微改点东西就可以实现视频播放运行效果和上面的一致就不贴了直接上代码 public class MainActivity extends AppCompatActivity implements View.OnClickListener {private VideoView videoView;private Button btn_start;private Button btn_pause;private Button btn_stop;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);bindViews();}private void bindViews() {videoView (VideoView) findViewById(R.id.videoView);btn_start (Button) findViewById(R.id.btn_start);btn_pause (Button) findViewById(R.id.btn_pause);btn_stop (Button) findViewById(R.id.btn_stop);btn_start.setOnClickListener(this);btn_pause.setOnClickListener(this);btn_stop.setOnClickListener(this);//根据文件路径播放if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {videoView.setVideoPath(Environment.getExternalStorageDirectory() /lesson.mp4);}//读取放在raw目录下的文件//videoView.setVideoURI(Uri.parse(android.resource://com.jay.videoviewdemo/ R.raw.lesson));videoView.setMediaController(new MediaController(this));}Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_start:videoView.start();break;case R.id.btn_pause:videoView.pause();break;case R.id.btn_stop:videoView.stopPlayback();break;}} }这里给大家推荐一套相关《音视频开发核心知识点笔记》相信可以给大家提供一些帮助有需要的朋友们也可以下载下来随时查漏补缺https://qr18.cn/Ei3VPD 音视频初级入门 音视频初级入门主要是接触Android多媒体展示相关的API通过单独的列举和使用这些API对Android音视频处理有一个基本的轮廓虽然知识点相对来说是比较散的但是点成线、线成面基本的基础掌握了通过学习Android音视频核心的API将音视频的流程串联起来这样对于音视频的了解和控制就不仅仅局限于最外层的API了而是能够通过相对底层的方式来加深对Android 音视频开发的认知。 Android 音视频开发(一)通过三种方式绘制图片Android 音视频开发(二)使用 AudioRecord 采集音频PCM并保存到文件Android 音视频开发(三)使用 AudioTrack 播放PCM音频Android 音视频开发(四)使用 Camera API 采集视频数据Android 音视频开发(五)使用 MediaExtractor 和 MediaMuxer API 解析和封装 mp4 文件Android 音视频开发(六)MediaCodec API 详解Android 音视频开发(七)音视频录制流程总结 …… 音视频中级进阶OpenSL ES 学习https://qr18.cn/Ei3VPD 学习 Android 平台 OpenSL ES API了解 OpenSL 开发的基本流程使用OpenSL播放PCM数据并了解相关API的简单使用 Android OpenSL ES 开发Android OpenSL 介绍和开发流程说明Android OpenSL ES 开发使用 OpenSL 播放 PCM 数据Android OpenSL ES 开发Android OpenSL 录制 PCM 音频数据Android OpenSL ES 开发OpenSL ES利用SoundTouch实现PCM音频的变速和变调 这一部分主要是动手实践积累实战经验可以试试给自己定以下目标 使用 OpenGL 显示一张图片 GLSurfaceviw 绘制 Camera 预览画面及实现拍照 使用OpenGL ES 完成视频的录制并实现视频水印效果 Android OpenGL ES 开发一: OpenGL ES 介绍 Android OpenGL ES 开发二: OpenGL ES 环境搭建 Android OpenGL ES 开发三: OpenGL ES 定义形状 Android OpenGL ES 开发四: OpenGL ES 绘制形状 Android OpenGL ES 开发五: OpenGL ES 使用投影和相机视图 Android OpenGL ES 开发六: OpenGL ES 添加运动效果 Android OpenGL ES 开发七: OpenGL ES 响应触摸事件 Android OpenGL ES 开发八: OpenGL ES 着色器语言GLSL Android OpenGL ES 开发九: OpenGL ES 纹理贴图 Android OpenGL ES 开发十:通过GLES20与着色器交互 …… 音视频高级探究 深入学习音视频编码如H.264AAC研究使用开源编解码库如x.264JM 等深入研究音视频相关的网络协议如 rtmphls以及封包格式如flvmp4深入学习一些音视频领域的开源项目如 webrtcffmpegijkplayerlibrtmp 等等将 ffmpeg 库移植到 Android 平台结合上面积累的经验编写一款简易的音视频播放器将 x264 库移植到 Android 平台结合上面积累的经验完成视频数据 H264 软编功能将 librtmp 库移植到 Android 平台结合上面积累的经验完成 Android RTMP 推流功能 音视频编解码技术https://qr18.cn/Ei3VPD 音视频编解码技术一MPEG-4/H.264 AVC 编解码标准 音视频编解码技术二AAC 音频编码技术…… 流媒体协议 流媒体协议一HLS 协议流媒体协议二RTMP协议…… 多媒体文件格式 多媒体文件格式一MP4 格式多媒体文件格式二FLV 格式多媒体文件格式三M3U8 格式多媒体文件格式四TS 格式多媒体文件格式五PCM / WAV 格式 …… FFmpeg 学习https://qr18.cn/Ei3VPD FFmpeg命令行工具学习(一)查看媒体文件头信息工具ffprobeFFmpeg命令行工具学习(二)播放媒体文件的工具ffplayFFmpeg命令行工具学习(三)媒体文件转换工具ffmpegFFmpeg命令行工具学习(四)FFmpeg 采集设备FFmpeg命令行工具学习(五)FFmpeg 调整音视频播放速度…… FFmpeg 学习(一)FFmpeg 简介FFmpeg 学习(二)Mac下安装FFmpegFFmpeg 学习(三)将 FFmpeg 移植到 Android平台FFmpeg 学习(四)FFmpeg API 介绍与通用 API 分析FFmpeg 学习(五)FFmpeg 编解码 API 分析FFmpeg 学习(六)FFmpeg 核心模块 libavformat 与 libavcodec 分析…… FFmpeg 结构体学习(一)AVFormatContext 分析FFmpeg 结构体学习(二)AVStream 分析FFmpeg 结构体学习(三)AVPacket 分析FFmpeg 结构体学习(四)AVFrame 分析FFmpeg 结构体学习(五)AVCodec 分析FFmpeg 结构体学习(六)AVCodecContext 分析FFmpeg 结构体学习(七)AVIOContext 分析FFmpeg 结构体学习(八)FFMPEG中重要结构体之间的关系…… FFmpeg 开发之 AVFilter 使用流程总结FFmpeg 过时 Api 汇总整理……
http://www.hkea.cn/news/14550670/

相关文章:

  • 天津建设网站的公司自己做一个微信小程序需要多少钱
  • 音乐网站开发如何免费建购物网站
  • 建设部职称证书查询官方网站云南搜索引擎优化
  • 做短租类型的网站网站正在建设中色无夜
  • 网页设计感十足的网站wordpress柒比贰
  • 网站开发时间计划表免费应用软件下载
  • 无锡网站建设公司怎么样图库
  • 旅游网站设计页面wordpress改了固定连接
  • 网站建设制度制定情况网页制作工具按其制作方式分为
  • 企业网站需求分析wordpress 删除 分类存档
  • 东莞h5网站开发app开发公司怎么找到需要定制的客户
  • 河北网站seo网站免费正能量直接进入浏览器下载安装
  • 用nas做网站服务器腾讯会议多少钱一个月
  • 站长之家网站网站 建设在作用是什么
  • 山东品牌建设网站wordpress小说站主题
  • 单页应用网站自己在线制作图片免费下载
  • 广州市公司网站建设域名查询工具
  • 贺州网站seowordpress树洞外链主题
  • 网站套餐网站开发时间段
  • 网站集约化建设优势腾讯微信朋友圈广告代理
  • 网站开发的现状.net 开源 企业网站
  • 昆明网站建设注意事项做网站经营流量
  • 网站建设实践心得体会展馆展厅设计
  • 泰安网站建设广告江苏建设人才网证书查询电子证书
  • 蓝色 网站建德网站
  • 上海找做网站公司唯美网站模板
  • 如何自己做论坛网站网站建设佰首选金手指十
  • 对于网站建设的提问兴县做网站公司
  • 网站空间的配置百度怎么推广自己的作品
  • 科普网站设计个人网站做哪些内容