安卓音、视频播放功能简单实现 --Android基础

1、音乐播放功能

关键代码:

MainActivity.java:

package thonlon.example.cn.musicdemowithoutservice;

import android.content.pm.PackageManager;import android.media.MediaPlayer;import android.net.Uri;import android.support.annotation.NonNull;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.Toast;

import java.io.IOException;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Button btn_play, btn_pause, btn_stop;    private MediaPlayer mediaPlayer = new MediaPlayer();//实例化MediaPlayer类

    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        iniview();        initMediaPlayer();    }

    private void iniview() {        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);    }

    private void initMediaPlayer() {        Uri uri = Uri.parse("http://www.nxl123.cn/snh.mp3");//网络中的音乐文件        try {            mediaPlayer.setDataSource(this, uri);//音乐文件路径            mediaPlayer.prepare();//资源文件准备        } catch (IOException e) {            e.printStackTrace();        }    }

    @Override    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {        super.onRequestPermissionsResult(requestCode, permissions, grantResults);        switch (requestCode) {            case 1:                if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {                    initMediaPlayer();                } else {                    Toast.makeText(this, "拒绝权限无法继续使用程序", Toast.LENGTH_SHORT).show();                    finish();                }                break;            default:                break;        }    }

    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.btn_play:                if (!mediaPlayer.isPlaying()) {                    mediaPlayer.start();//播放                }                break;            case R.id.btn_pause:                if (mediaPlayer.isPlaying()) {                    mediaPlayer.pause();//暂停                }                break;            case R.id.btn_stop:                if (mediaPlayer.isPlaying()) {                    mediaPlayer.reset();//停止                }                break;            default:                break;        }    }

    @Override    protected void onDestroy() {        super.onDestroy();        if (mediaPlayer != null) {            mediaPlayer.stop();            mediaPlayer.release();        }    }}

2、视频播放功能(VideoView实现)

MainActivity.java:

package thonlon.example.cn.videoplaydemowithoutservice;

import android.content.pm.PackageManager;import android.net.Uri;import android.os.Bundle;import android.support.annotation.NonNull;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.MediaController;import android.widget.Toast;import android.widget.VideoView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Button btn_play, btn_pause, btn_replay;    private VideoView videoView;

    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();    }

    private void initView() {        btn_play = (Button) findViewById(R.id.btn_play);        btn_pause = (Button) findViewById(R.id.btn_pause);        btn_replay = (Button) findViewById(R.id.btn_replay);        videoView = (VideoView) findViewById(R.id.vv_show);        btn_play.setOnClickListener(this);        btn_pause.setOnClickListener(this);        btn_replay.setOnClickListener(this);        initVideoPath();    }

    private void initVideoPath() {        //播放本地资源文件        videoView.setVideoURI(Uri.parse("android.resource://thonlon.example.cn.videoplaydemowithoutservice/"+R.raw.demo));//设置资源路径//        videoView.setMediaController(new MediaController(this));//播放时点击videoView显示控制条    }

    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.btn_play:                if (!videoView.isPlaying()) {                    videoView.start();//开始播放                }                break;            case R.id.btn_pause:                if (videoView.isPlaying()) {                    videoView.pause();//暂停播放                }                break;            case R.id.btn_replay:                if (videoView.isPlaying()) {                    videoView.resume();//重新播放                }                break;            default:                break;        }    }

    @Override    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {        super.onRequestPermissionsResult(requestCode, permissions, grantResults);        switch (requestCode) {            case 1:                if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {                    initVideoPath();                } else {                    Toast.makeText(this, "无法播放", Toast.LENGTH_SHORT).show();                    finish();                }        }    }

    @Override    protected void onDestroy() {        super.onDestroy();        if (videoView != null){            videoView.suspend();        }    }}

原文地址:https://www.cnblogs.com/qikeyishu/p/9192920.html

时间: 2024-10-09 17:55:51

安卓音、视频播放功能简单实现 --Android基础的相关文章

直播技术总结(四)音视频数据压缩及编解码基础

转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/60480109 音视频压缩技术是编解码中难点,常常会涉及很多算法处理问题.数据封装,转封装等,看下Agenda: 音视频为何需要压缩? 压缩编码的分类 常用压缩编码的方法 编码器中的关键技术 预测 量化 变换 熵编码 编解码中的情况 音视频为何需要压缩? 未经压缩的数字视频的数据量巨大 存储困难:一张DVD只能存储几秒钟的未压缩数字

编程必备基础-音视频小白系统入门课

本章主要介绍为何要带大家学习一个音视频初级入门课程,本课程中不仅系统的讲解了音视频到底是如何工作的,还会将音视频原理与实战相结合,讲解学习阶梯和实现思路,之后会为大家介绍本课程内容具体安排,最后给出如何学好这门课程的一些学习建议.希望大家都能通过这门课程,学有所成,学有所归.... 1-1 课前必读(不看会错过一个亿) 1-2 课程介绍及学习指导试看 第2章 音视频环境基础 本章会讲解学习音视频课程之前必要的基础知识,如Linux常见命令以及环境变量的设置等.在之前的课程中,有很多同学提出的问题

2015年最新Android基础入门教程目录(完结版)

2015年最新Android基础入门教程目录(完结版) 标签(空格分隔): Android基础入门教程 前言: 关于<2015年最新Android基础入门教程目录>终于在今天落下了帷幕,全套教程 共148节已编写完毕,附上目录,关于教程的由来,笔者的情况和自学心得,资源分享 以及一些疑问等可戳:<2015最新Android基础入门教程>完结散花~ 下面是本系列教程的完整目录: 第一章:环境搭建与开发相关(已完结 10/10) Android基础入门教程--1.1 背景相关与系统架构

电子设备常见的音视频接口

倘若花了大价钱买了一些电子设备,却不知道其中的接口怎么使用,是不是非常苦恼.感觉浪费了一半的功能,笔者也不是很清楚,于是就查阅一些资料,总结一下.因为电子设备的更新换代又那么的快,我只能说现阶段的常见的电子设备接口,时间是2019年8月4日.1.图像音视频接口A.VGA接口(视频:模拟信号)VGA是IBM在1987年随PS/2机一起推出的一种视频传输标准.蓝色的插头也是最有辨识度的一个接口:VGA 接口有3排针脚,每排5个,共有15针.VGA接口采用的是模拟信号,不支持音频.B.DVI接口(视频

Android # 基础汇总

主題彙總: 源碼下載/Android开发 源码下载: [更新4.4]Android 2.2.2到Android 4.2.2源码下载地址 - Android开发资料库 - Android开发论坛 - 安卓开发论坛 - Android开发 - 安卓论坛 - 移动互联网门户http://www.apkbus.com/android-108480-1-1.html Android4.2源码下载过程_Linux教程_Linux公社-Linux系统门户网站http://www.linuxidc.com/Li

2015年最新Android基础入门教程目录(临时版)

2015年最新Android基础入门教程目录(临时版) 标签(空格分隔): Android基础入门教程 前言: 嗯,昨晚又给人盗号了,博客上被发表了十几篇黄贴-然后目录给管理误删了,再发一次 后来协商后发现实被设密保问题了,建议各位用csdn的朋友密保自己设置一波~ 密保问题已修改回来了,应该不会再被盗号了-人怕出名猪怕壮哈~下次如果发现博客被封 告知下小猪,如何很急的话可以先到w3c鸟巢菜鸟教程上看Android基础入门教程 经过站长FK进行排版的,可能阅读体验会比csdn好很多!内容基本是同

转:?Android IOS WebRTC 音视频开发总结 (系列文章集合)

随笔分类 - webrtc Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键? 摘要: 本文主要介绍WebRTC端到端监控(我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:blackerteam 或 webrtcorgcn). callstats是一家做实时通讯性能测阅读全文 posted @ 2016-07-22 08:24

Android IOS WebRTC 音视频开发总结(八十五)-- 使用WebRTC广播网络摄像头视频(下)

本文主要介绍WebRTC (我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:blackerteam 或 webrtcorgcn). 回顾:Android IOS WebRTC 音视频开发总结(八十三)-- 使用WebRTC广播网络摄像头视频(上) 连接网络摄像头 正如上文所提,我们选用一款简单的D-Link DCS-7010L网络摄像头.关键原因在于它支持RTSP协议,因此服务

音视频编码基础知识

本文转载自 http://blog.csdn.net/ljzcom/article/details/7336258 ,如有需要,请移步查看. Technorati 标签: 音视频 编码 基础知识 --------------------------------分割线开始----------------------------------------------- 编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中