当前位置:首页 » 安卓系统 » android播放视频代码

android播放视频代码

发布时间: 2022-09-28 14:47:50

‘壹’ Android 使用VideoView实现简单视频播放

最近项目里要写一个简单的视频播放页面,先上一下效果图吧

因为考虑我们的需求比较简单,就没有使用三方的框架,采用了原生的VideoView。
因为很长时间没用过原生的VideoView了,大部分采用的都是饺子播放器或者别的三方框架,所以本篇文章主要用于自己复习,技术含量不高(嘿嘿)!

‘贰’ 安卓开发怎么点击按钮就播放视频videoview

Android使用VideoView实现VideoPlayer 在Android系统中,是通过MediaPalyer类播放媒体文件的(包括视频和音频)。虽然这个类已经比较简单了,但是还需要控制各种状态,对于视频还需要设置输出窗口,还是需要仔细研究的。为了避免这些麻烦事儿,Android框架提供了VideoView类来封MediaPalyer,这个VideoView类非常好用。Android自带的程序Gallery也是用VideoView实现的。 通过VideoView播放视频的步骤: 1、在界面布局文件中定义VideoView组件,或在程序中创建VideoView组件 2、调用VideoView的如下两个方法来加载指定的视频 setVidePath(String path):加载path文件代表的视频 setVideoURI(Uri uri):加载uri所对应的视频 3、调用VideoView的start()、stop()、psuse()方法来控制视频的播放 VideoView通过与MediaController类结合使用,开发者可以不用自己控制播放与暂停 简单实例: activity_main/apk/res/android" xmlns:tools="schemas/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <VideoView android:id="@+id/video1" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout> Activity 控制代码: package com.Uri; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.widget.MediaController; import android.widget.VideoView; public class MainActivity extends Activity { private VideoView video1; MediaController mediaco; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); video1=(VideoView)findViewById(R.id.video1); mediaco=new MediaController(this); File file=new File("/mnt/sdcard/通话录音/1.mp4"); if(file.exists()){ //VideoView与MediaController进行关联 video1.setVideoPath(file.getAbsolutePath()); video1.setMediaController(mediaco); mediaco.setMediaPlayer(video1); //让VideiView获取焦点 video1.requestFocus(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } }

‘叁’ android怎样播放assets中的视频,关键代码video.setVideoPath("路径")对吗我用了出错了.

assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。
video.setVideoPath("路径")是读取不到文件的
assets的读取方式:
1. 先在Activity里面调用getAssets() 来获取AssetManager引用。
2. 再用AssetManager的open(String fileName, int accessMode) 方法则指定读取的文件以及访问模式就能得到输入流InputStream。
3. 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close() 。
4.调用AssetManager.close() 关闭AssetManager。

需要注意的是,来自Resources和Assets 中的文件只可以读取而不能进行写的操作

‘肆’ android 实现播放网络视频

没有调start(),vv.setVideoURI(uri);后要调用vv.start(),才可以播放,这里面有好几个接口,pause,resunme,stop你看下api,建议看下Mediaplayer播放的状态机,对你理解多媒体播放有好处。

‘伍’ 请问怎么把一个android的视频播放界面在代码中设置为横向的全屏并不能滚动

在Manifest中设置activity为横向,主题设置为全屏就行了
不能滚动是你在配置xml的时候设定好fillparent就行了

‘陆’ android怎样播放assets中的视频,关键代码video.setVideoPath("路径")对吗我用了出错了.

不能在异步线程刷新主线程UI解决法:this.runOnUiThread(newRunnable(){@Overridepublicvoidrun(){}});利用handler

‘柒’ 求一份Android视频播放器源码

怎么发给你
package wyf.zcl;

import java.util.HashMap;

import android.app.Activity;
import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MyActivity extends Activity {
/** Called when the activity is first created. */
SoundPool sp; //得到一个声音池引用
HashMap<Integer,Integer> spMap; //得到一个map的引用
Button b1; //声音播放控制按钮
Button b1Pause; //声音暂停控制按钮
Button b2; //声音播放控制按钮
Button b2Pause; //声音暂停控制按钮
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initSoundPool(); //初始化声音池
b1=(Button)findViewById(R.id.Button01);//声音播放控制按钮实例化
b2=(Button)findViewById(R.id.Button02);//声音播放控制按钮实例化
b1Pause=(Button)findViewById(R.id.Button1Pause);
b2Pause=(Button)findViewById(R.id.Button2Pause);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
playSound(1,1); //播放第一首音效,循环一遍
Toast.makeText(MyActivity.this, "播放音效1", Toast.LENGTH_SHORT).show();
}});
b1Pause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sp.pause(spMap.get(1));
Toast.makeText(MyActivity.this, "暂停音效1", Toast.LENGTH_SHORT).show();
}});
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
playSound(2,1); //播放第二首音效,循环一遍
Toast.makeText(MyActivity.this, "播放音效2", Toast.LENGTH_SHORT).show();
}});
b2Pause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sp.pause(spMap.get(2));
Toast.makeText(MyActivity.this, "暂停音效2", Toast.LENGTH_SHORT).show();
}});
}
public void initSoundPool(){ //初始化声音池
sp=new SoundPool(
5, //maxStreams参数,该参数为设置同时能够播放多少音效
AudioManager.STREAM_MUSIC, //streamType参数,该参数设置音频类型,在游戏中通常设置为:STREAM_MUSIC
0 //srcQuality参数,该参数设置音频文件的质量,目前还没有效果,设置为0为默认值。
);
spMap=new HashMap<Integer,Integer>();
spMap.put(1, sp.load(this, R.raw.attack02, 1));
spMap.put(2, sp.load(this, R.raw.attack14, 1));
}
public void playSound(int sound,int number){ //播放声音,参数sound是播放音效的id,参数number是播放音效的次数
AudioManager am=(AudioManager)this.getSystemService(this.AUDIO_SERVICE);//实例化AudioManager对象
float audioMaxVolumn=am.getStreamMaxVolume(AudioManager.STREAM_MUSIC); //返回当前AudioManager对象的最大音量值
float audioCurrentVolumn=am.getStreamVolume(AudioManager.STREAM_MUSIC);//返回当前AudioManager对象的音量值
float volumnRatio=audioCurrentVolumn/audioMaxVolumn;
sp.play(
spMap.get(sound), //播放的音乐id
volumnRatio, //左声道音量
volumnRatio, //右声道音量
1, //优先级,0为最低
number, //循环次数,0无不循环,-1无永远循环
1 //回放速度 ,该值在0.5-2.0之间,1为正常速度
);
}
}
要在资源中加声音文件哦

‘捌’ 求Android实现边下边播代码,思路也行 求大神赏给小弟吧

1) 播放器在播放磁力链、或者torrrent文件时,调用产品的P2P引擎,p2p引擎里面通过torrent或者磁力链信息,去通过tracker、DHT寻找周围的peer邻居,然后获取数据。
2) p2p获取到的数据,通过播放器可以支持的协议,返回给播放器,这就是一个标准的视频文件,所以它可以正常播放
3) 播放器在拖动时,p2p引擎自动切换下载位置,并返回数据。以上这些是不分Android、IOS还是PC的,只是在移动端可能下载速度、检测是否WIFI之类的有些策略上的差异而已

‘玖’ android程序播放音乐和改成放视频怎么弄,需要在代码中怎么更改在哪里改

首先新建一个项目命名为Mp3Demo(这个看个人喜好),Activity命名为Mp3Demo。
1.接下来在Mp3Demo.java中输入以下代码:

package com.example.mp3demo;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class Mp3Demo extends Activity
{ //声名变量
private Button start=null;
private Button pause=null;
private Button stop=null;
private TextView state=null;
private MediaPlayer mp3;
private Boolean flag=false; //设置标记,false表示正在播放
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_mp3_demo);
//取得各按钮组件
start=(Button) super.findViewById(R.id.start);
pause=(Button) super.findViewById(R.id.pause);
stop=(Button) super.findViewById(R.id.stop);
state=(TextView)super.findViewById(R.id.state);
//为每个按钮设置单击事件
start.setOnClickListener(new OnClickListenerStart());
pause.setOnClickListener(new OnClickListenerPause());
stop.setOnClickListener(new OnClickListenerStop());
mp3= new MediaPlayer(); //创建一个MediaPlayer对象
//在res下新建一个raw文件夹把一首歌放到此文件夹中并用英文命名
mp3 = MediaPlayer.create(Mp3Demo.this,R.raw.sky);
}
//各按钮单击事件的实现如下
//开始播放
private class OnClickListenerStart implements OnClickListener{
//implementsOnClickListener为实现OnClickListener接口
@Override
//重写onClic事件
public void onClick(View v)
{
//执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容
try
{
if (mp3!=null)
{
mp3.stop();
}
mp3.prepare(); //进入到准备状态
mp3.start(); //开始播放
state.setText("Playing"); //改变输出信息为“Playing”,下同
} catch (Exception e)
{
state.setText(e.toString());//以字符串的形式输出异常
e.printStackTrace(); //在控制台(control)上打印出异常
}
}
}
//暂停播放
private class OnClickListenerPause implements OnClickListener{
@Override
public void onClick(View v)
{
try
{
if (flag==false) //若flag为false,则表示此时播放器的状态为正在播放
{
mp3.pause();
flag=true;
state.setText("pause");
}
else if(flag==true){
mp3.start(); //开始播放
flag=false; //重新设置flag为false
state.setText("Playing");
}
} catch (Exception e)
{
state.setText(e.toString());
e.printStackTrace();
}
}
}
//停止播放
private class OnClickListenerStop implements OnClickListener{
@Override
public void onClick(View v)
{
try
{
if (mp3!=null)
{
mp3.stop();
state.setText("stop");
}
} catch (Exception e)
{
state.setText(e.toString());
e.printStackTrace();
}
}
}
//重写暂停状态事件
protected void onPause(){
try
{
mp3.release(); //释放音乐资源
} catch (Exception e)
{
state.setText(e.toString());
e.printStackTrace();
}
super.onPause();
}
}

2.按下来是定义布局文件,代码如下:

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
android:id="@+id/state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
android:id="@+id/start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="start"/>
android:id="@+id/pause"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="pause"/>
android:id="@+id/stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="stop"/>

热点内容
电脑服务器不运行是怎么回事 发布:2024-05-06 14:20:28 浏览:790
肥皂板解压视频大全 发布:2024-05-06 14:20:27 浏览:259
ps4各个服务器有什么区别 发布:2024-05-06 14:10:38 浏览:484
手机上怎么玩韩国服务器游戏 发布:2024-05-06 14:10:20 浏览:58
频繁的解压缩 发布:2024-05-06 14:09:30 浏览:820
怎么在红帽上装c语言编译器 发布:2024-05-06 13:58:38 浏览:507
linuxtomcat设置 发布:2024-05-06 13:50:11 浏览:28
c语言需要什么基础 发布:2024-05-06 13:46:10 浏览:687
python利器 发布:2024-05-06 13:33:56 浏览:731
ts代码编译成umd 发布:2024-05-06 13:13:38 浏览:724