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

安卓使用VideoView播放raw目录的视频和sd卡的视频_Android开发_动态网站制作指南
安卓使用VideoView播放raw目录的视频和sd卡的视频
来源:人气:38
package com.javen.devicemange.CrazyOne.
import android.M
import android.content.res.AssetM
import android.media.MediaP
import android.net.U
import android.os.B
import android.os.E
import android.support.annotation.N
import android.support.v4.app.ActivityC
import android.support.v7.app.AppCompatA
import android.view.V
import android.widget.B
import android.widget.MediaC
import android.widget.VideoV
import com.javen.devicemange.R;
import .io.F
* Created by Administrator on
* 使用VideoView播放raw目录的视频和sd卡的视频
public class VideoViewTest extends AppCompatActivity implements View.OnClickListener {
ivate VideoV
private MediaController mediaC
private AssetManager assetM
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.videoviewtest);
initView();
requestPermission();
private void requestPermission() {
String[] needPermission = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
ActivityCompat.requestPermissions(this, needPermission, 1);
private void initView() {
video = (VideoView) findViewById(R.id.video);
play = (Button) findViewById(R.id.play);
play.setOnClickListener(this);
raw = (Button) findViewById(R.id.raw);
raw.setOnClickListener(this);
public void onClick(View v) {
switch (v.getId()) {
case R.id.play:
playVideoMp4();
case R.id.raw:
playVideoRaw();
* 播放raw的小视频
private void playVideoRaw() {
mediaController = new MediaController(this);
//获取raw.mp4的uri地址
String uri = &android.resource://& + getPackageName() + &/& + R.raw.raw;
video.setVideoURI(Uri.parse(uri));
//让video和mediaController建立关联
video.setMediaController(mediaController);
mediaController.setMediaPlayer(video);
//让video获取焦点
video.requestFocus();
//监听播放完成,
video.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
//重新开始播放
video.start();
* 播放sd卡的小视频
private void playVideoMp4() {
mediaController = new MediaController(this);
//获取sd卡根目录下的test.mp4文件
File file = new File(Environment.getExternalStorageDirectory().toString() + &/test.mp4&);
if (file.exists()) {
video.setVideoPath(file.getAbsolutePath());
//让video和mediaController建立关联
video.setMediaController(mediaController);
mediaController.setMediaPlayer(video);
//让video获取焦点
video.requestFocus();
&?xml version=&1.0& encoding=&utf-8&?&
&LinearLayout xmlns:android=&/apk/res/android&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:orientation=&vertical&&
android:id=&@+id/raw&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:text=&播放raw目录的小视频&/&
android:id=&@+id/play&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:text=&播放sd卡的小视频&/&
&VideoView android:id=&@+id/video&
android:layout_width=&match_parent&
android:layout_height=&300dp&/&
&/LinearLayout&
AndroidManifest.xml
&uses-permission android:name=&android.permission.WRITE_EXTERNAL_STORAGE&/&
&uses-permission android:name=&android.permission.READ_EXTERNAL_STORAGE&/&
优质网站模板2317人阅读
Android 基础(32)
转载地址:
&&&&根据Google
I/O 2010大会发布的数据,Android从08年8月面世到现在18个月里取得的飞速发展,Android目前有超过5万个可用程序,超过18万的程序开发者。本文从两方面阐述我对Android应用程序设计的理解。
&&&&一、Android程序设计架构
&&&&&&&任何一个完整的Android程序设计实例都至少要包含AndroidManifest.xml文件,它放在程序实例的根目录、src源代码目录与res资源文件目录中。AndroidManifest.xml文件定义应用程序的功能导向,src目录下则放置所设计的java源代码,而在res资源文件目录下,有各式各样的资源文件可供应用程序使用,最常见的是res\drawable(用来放置应用程序的图像)、res\layout(用来放置设计应用程序使用者界面的布局文件)以及文字资源文件(用来显示应用程序菜单、消息等文字字符串)。而除了文字字符串资源外,在res\values目录下,还可以使用arrays.xml定义数组信息、colors.xml定义绘图或文字字符串颜色、dimens.xml定义显示字符串或图像尺寸的大小、styles.xml定义画面显示风格等高级资源文件。另外资源文件目录还有res\anim、res\xml与res\raw,它们并不是Android程序设计实例默认生成目录,但这三个资源目录在放置应用程序运行所需要读取的动画设置文件anim.xml、其他用途的xm文件或者程序运行时,将读取到手机装置的raw文件,常见的raw原始文件有音效文件或动画文件等。Android程序设计实例的文件结构都类似下表的目录结构
&&&&&二、影音播放程序部分解析
&&&&&说明:此程序设计编译运行在Ubuntun10.04下
此处省去Android开发环境搭建过程
&&&&&1、首先利用Eclipse创建一个新的开发程序实例,取名为Videoplayer,组件名为
&&&&&&&&&&&com.example.android.Videoplayer,而Activity活动名称设置为Videoplayer,
&&&&&&&&&&&应用程序名为Videoplayer。
&&&&&2、放置影片到SD存储卡中
&&&&&$./emulator
-avd AVD -sdcard sdcard,img -skin HVGA
&&&&&$.adb
push video.mp4 /sdcard
&&&&&3、设计影片播放界面布局文件
&&&&&&&?xml
version=&1.0& encoding=&utf-8&?&
&&&&&&&LinearLayout
xmlns:android=&/apk/res/android&
&&&&&&&&&&&android:orientation=&vertical&
&&&&&&&&&&&android:layout_width=&fill_parent&
&&&&&&&&&&android:layout_height=&fill_parent&
&&&&&&VideoView&
&&&&&&&&&&android:id=&@+id/movieview&
&&&&&&&&&&android:layout_width=&480px&
&&&&&&&&&&android:layout_height=&320px&
&&&&&&/LinearLayout&
&&&&&4、设计影片播放程序的Java源代码
&&&&&&&package
com.example.android.V
&&&&&&import
android.app.A
&&&&&&import
android.os.B
&&&&&&import
android.widget.VideoV
&&&&&&import
android.widget.MediaC
&&&&public
class Videoplayer extends Activity {
&&&&private
String videopath =&/sdcard/video.mp4&;
&&&&private
VideoView mVideoP
&&&&@Override
&&&&public
void onCreate(Bundle icicle) {
&&&&&&&&super.onCreate(icicle);
&&&&&&&&setContentView(R.layout.main);
&&&&&&&&mVideoPlay
=(VideoView)findViewById(R.id.movieview);
&&&&&&&&mVideoPlay.setVideoPath(videopath);
&&&&&&&&mVideoPlay.setMediaController(new
MediaController(this));
&&&&&&&&mVideoPlay.requestFocus();
此时集成开发环境Eclipse 如下图所示
&&&&&&&5、编译运行影片播放程序
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1059894次
积分:8830
积分:8830
排名:第2120名
原创:111篇
转载:68篇
评论:123条
(1)(1)(1)(1)(2)(5)(1)(1)(4)(4)(2)(5)(1)(1)(1)(1)(3)(4)(1)(2)(6)(3)(4)(2)(1)(7)(10)(2)(6)(7)(4)(1)(1)(7)(2)(4)(7)(2)(6)(11)(6)(12)(2)(1)(7)(8)(2)(2)(4)Android中使用VideoView播放当前工程中的视频文件 - 路漫漫其修远 - ITeye博客
博客分类:
&&& 最近在做一个demo,要求播放视频,记录一下。使用的是VideoView控件,如果播放网络视频的话,视频应该是渐进流式的,格式嘛,大家应该都知道,一般是H.263或者H.264格式的扩展名为3gp或者mp4的视频文件,或者MPEG4 SP的3gp文件。
&&& 放个网络播放的测试视频地址:
&&& 播放网络视频的代码如下:
videoView = (VideoView) findViewById(R.id.videoview);
videoView.setVideoURI(Uri.parse("http://f3./15/15/JGfMspPbHtzoqpzseFTPGUsKCEqMXFTW_smooth.3gp"));
MediaController mediaController = new MediaController(this);
videoView.setMediaController(mediaController);
videoView.start();
&& 播放当前工程中的视频文件,费了点劲,怎么都不行,播放sd卡或者手机内存中的没问题。播放sd卡中的视频的代码:
videoView.setVideoURI(Uri.parse("file:///sdcard/video/test.3gp"));
播放当前工程中的视频的代码:
videoView.setVideoURI(Uri.parse("android.resource://com.telecom.activities/"+R.raw.tianyi));
注:com.telecom.activities是类的package name,R.raw.tianyi是视频的文件名,视频放在res下的raw文件夹下了,会自动在R.java中生成。android中文件名有要求,必须是有效的文件名,包括小写字母和数字,其余的都不行,注意!
&&&
浏览: 70041 次
来自: 济南
很好,解决了我的疑问!
dingran 写道1.delvik虚拟机占用的内存是c的还是 ...
1.delvik虚拟机占用的内存是c的还是java的呢?2.如 ...
问题解决了,感谢楼主分享
zjc198805 写道LZ,我采用的struts2 无配置的 ...2955人阅读
android(18)
  之前有讲过如何使用SurfaceView配合MediaPlayer播放视频,其实Android还为开发人员提供了另外一种更简单的播放视频媒体的方式,那就是VideoView,本篇博客就来讲讲VideoView如何播放视频,最后将以一个简单的Demo演示。
  本篇博客的主要内容如下:
VideoView简单的Demo
MediaController
MediaController简单的Demo
  VideoView,用于播放一段视频媒体,它继承了SurfaceView,位于&android.widget.VideoView&,是一个视频控件。
  既然是播放一段视频,那么不可避免的要涉及到一些开始、暂停、停止等操作,VideoView也为开发人员提供了对应的方法,这里简单介绍一些常用的:
int getCurrentPosition():获取当前播放的位置。
int getDuration():获取当前播放视频的总长度。
isPlaying():当前VideoView是否在播放视频。
void pause():暂停
void seekTo(int msec):从第几毫秒开始播放。
void resume():重新播放。
void setVideoPath(String path):以文件路径的方式设置VideoView播放的视频源。
void setVideoURI(Uri uri):以Uri的方式设置VideoView播放的视频源,可以是网络Uri或本地Uri。
void start():开始播放。
void stopPlayback():停止播放。
setMediaController(MediaController controller):设置MediaController控制器。
setOnCompletionListener(MediaPlayer.onCompletionListener l):监听播放完成的事件。
setOnErrorListener(MediaPlayer.OnErrorListener l):监听播放发生错误时候的事件。
setOnPreparedListener(MediaPlayer.OnPreparedListener l)::监听视频装载完成的事件。
  上面的一些方法通过方法名就可以了解用途。和MediaPlayer配合SurfaceView播放视频不同,VideoView播放之前无需编码装载视频,它会在start()开始播放的时候自动装载视频。并且VideoView在使用完之后,无需编码回收资源。
VideoView简单的Demo
  VideoView其实没有什么难点,通过它自带的API方法,即可完成一段视频的播放,无非就是注意它方法的调用时机即可。下面通过一个简单的Demo,演示VideoView如何播放一段SD卡上的视频文件。在Demo中提供了四个Button,分别表示播放、暂停、重播、停止,并配合进度条显示。代码注释比较完整,细节部分这里不再累述。
  布局代码:activity_videoview.xml
&View Code
  实现代码:VideoViewActivity.java
&& package cn.bgxt.
import java.io.F
import android.app.A
import android.media.MediaP
import android.media.MediaPlayer.OnCompletionL
import android.media.MediaPlayer.OnErrorL
import android.os.B
import android.util.L
import android.view.V
import android.widget.B
import android.widget.EditT
import android.widget.SeekB
import android.widget.T
import android.widget.VideoV
import android.widget.SeekBar.OnSeekBarChangeL
public class VideoViewActivity extends Activity {
private final String TAG = &main&;
private EditText et_
private Button btn_play, btn_pause, btn_replay, btn_
private SeekBar seekB
private VideoView vv_
private boolean isP
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_videoview);
seekBar = (SeekBar) findViewById(R.id.seekBar);
et_path = (EditText) findViewById(R.id.et_path);
vv_video = (VideoView) findViewById(R.id.vv_videoview);
btn_play = (Button) findViewById(R.id.btn_play);
btn_pause = (Button) findViewById(R.id.btn_pause);
btn_replay = (Button) findViewById(R.id.btn_replay);
btn_stop = (Button) findViewById(R.id.btn_stop);
btn_play.setOnClickListener(click);
btn_pause.setOnClickListener(click);
btn_replay.setOnClickListener(click);
btn_stop.setOnClickListener(click);
// 为进度条添加进度更改事件
seekBar.setOnSeekBarChangeListener(change);
private OnSeekBarChangeListener change = new OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar) {
// 当进度条停止修改的时候触发
// 取得当前进度条的刻度
int progress = seekBar.getProgress();
if (vv_video != null && vv_video.isPlaying()) {
// 设置当前播放的位置
vv_video.seekTo(progress);
public void onStartTrackingTouch(SeekBar seekBar) {
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
private View.OnClickListener click = new View.OnClickListener() {
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_play:
case R.id.btn_pause:
case R.id.btn_replay:
case R.id.btn_stop:
protected void play(int msec) {
Log.i(TAG, & 获取视频文件地址&);
String path = et_path.getText().toString().trim();
File file = new File(path);
if (!file.exists()) {
Toast.makeText(this, &视频文件路径错误&, 0).show();
Log.i(TAG, &指定视频源路径&);
vv_video.setVideoPath(file.getAbsolutePath());
Log.i(TAG, &开始播放&);
vv_video.start();
// 按照初始位置播放
vv_video.seekTo(msec);
// 设置进度条的最大进度为视频流的最大播放时长
seekBar.setMax(vv_video.getDuration());
// 开始线程,更新进度条的刻度
new Thread() {
public void run() {
isPlaying =
while (isPlaying) {
// 如果正在播放,没0.5.毫秒更新一次进度条
int current = vv_video.getCurrentPosition();
seekBar.setProgress(current);
sleep(500);
} catch (Exception e) {
e.printStackTrace();
}.start();
// 播放之后设置播放按钮不可用
btn_play.setEnabled(false);
vv_video.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
// 在播放完毕被回调
btn_play.setEnabled(true);
vv_video.setOnErrorListener(new OnErrorListener() {
public boolean onError(MediaPlayer mp, int what, int extra) {
// 发生错误重新播放
isPlaying =
* 重新开始播放
protected void replay() {
if (vv_video != null && vv_video.isPlaying()) {
vv_video.seekTo(0);
Toast.makeText(this, &重新播放&, 0).show();
btn_pause.setText(&暂停&);
isPlaying =
* 暂停或继续
protected void pause() {
if (btn_pause.getText().toString().trim().equals(&继续&)) {
btn_pause.setText(&暂停&);
vv_video.start();
Toast.makeText(this, &继续播放&, 0).show();
if (vv_video != null && vv_video.isPlaying()) {
vv_video.pause();
btn_pause.setText(&继续&);
Toast.makeText(this, &暂停播放&, 0).show();
* 停止播放
protected void stop() {
if (vv_video != null && vv_video.isPlaying()) {
vv_video.stopPlayback();
btn_play.setEnabled(true);
isPlaying =
  效果展示:
MediaController
  提到VideoView不得不再说一些MediaController。虽然VideoView为我们提供了方便的API用于播放、暂停、停止等操作,但是还是需要我们编码完成,但是如果使用了MediaController的话,那么这些操作都可以省去。
  MediaController可以用于配合VideoView播放一段视频,它为VideoView提供一个悬浮的操作栏,在操作栏中可以对VideoView播放的视频进行控制,默认情况下,会悬浮显示三秒。它通过MediaController.setMediaPlayer()方法进行指定需要控制的VideoView,但是仅仅这样是不够的,MediaController的控制需要类似于双向控制,MediaController指定控制的VideoView,VideoView还需要指定那个MediaController来控制它,这需要使用VideoView.setMediaController()方法。
  下面介绍一下MediaController的一些常用方法;
boolean isShowing():当前悬浮控制栏是否显示。
void setMediaPlayer(MediaController.MediaPlayerControl player):设置控制的。
void setPrevNextListeners(View.OnClickListener next,View.OnClickListener prev):设置上一个视频、下一个视频的切换事件。
  通过上面的方法可以看出setMediaPlayer()并非指定的是一个VideoView,而是一个MediaPlayerControl接口,MediaPlayerControl接口内部定义了一些播放相关的播放、暂停、停止等操作,而VideoView实现了MediaPlayerControl。
  默认情况下,如果不通过setPrevNextListeners()设置切换视频的监听器,MediaController是不会显示这两个按钮的。
MediaController简单的Demo
  上面已经讲过MediaController的一些内容,下面通过一个简单的Demo来演示一下MediaController控制VideoView播放视频。
  布局代码:activity_controller.xml
&View Code
  实现代码:ControllerActivity.java
& package cn.bgxt.
import java.io.F
import android.app.A
import android.os.B
import android.view.V
import android.view.View.OnClickL
import android.widget.MediaC
import android.widget.T
import android.widget.VideoV
public class ControllerActivity extends Activity {
private VideoView vv_
private MediaController mC
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_controller);
vv_video=(VideoView) findViewById(R.id.vv_video);
// 实例化MediaController
mController=new MediaController(this);
File file=new File(&/sdcard/ykzzldx.mp4&);
if(file.exists()){
// 设置播放视频源的路径
vv_video.setVideoPath(file.getAbsolutePath());
// 为VideoView指定MediaController
vv_video.setMediaController(mController);
// 为MediaController指定控制的VideoView
mController.setMediaPlayer(vv_video);
// 增加监听上一个和下一个的切换事件,默认这两个按钮是不显示的
mController.setPrevNextListeners(new OnClickListener() {
public void onClick(View v) {
Toast.makeText(ControllerActivity.this, &下一个&,0).show();
}, new OnClickListener() {
public void onClick(View v) {
Toast.makeText(ControllerActivity.this, &上一个&,0).show();
  从上面展示的效果可以看出,MediaController不光为我们增加了控制栏来控制播放、暂停、快进、快退、切换上一视频、切换下一视频,还增加了进度条显示。
原文地址:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:15117次
排名:千里之外
原创:11篇
转载:10篇
(1)(2)(1)(2)(2)(7)(6)16946人阅读
C/C++学习(79)
android学习(131)
使用videoView来播放视频
大概步骤:
使用android的VideoView来播放一个视频,步骤是:
1,在xml中创建一个videoView,
2,在java中导入,然后创建一个MediaController控制条来控制。
3,利用videoView的setVideoPath来把打开的视频文件设置进去,如videoView.setVideoPath(videoFile.getAbsolutePath());
4,把videoView和MediaController关联起来,如
videoView.setMediaController(mediaController);
mediaController.setMediaPlayer(videoView);
5,设置videoView.requestFocus(); videoView.start(); 既可以播放视频。
&?xml version=&1.0& encoding=&utf-8&?&
&LinearLayout xmlns:android=&/apk/res/android&
android:layout_width=&fill_parent&
android:layout_height=&fill_parent&
android:orientation=&vertical& &
&VideoView
android:id=&@+id/video&
android:layout_width=&fill_parent&
android:layout_height=&fill_parent& /&
android:id=&@+id/btnShow&
android:text=&show&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:id=&@+id/btnHide&
android:text=&hide&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
&/LinearLayout&
java &文件:
/*package com.example.
import android.os.B
import android.app.A
import android.view.M
import android.view.MenuI
import android.support.v4.app.NavU
public class MainActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
package com.example.
import java.io.F
import android.app.A
import android.graphics.PixelF
import android.os.B
import android.view.V
import android.widget.B
import android.widget.MediaC
import android.widget.T
import android.widget.VideoV
public class MainActivity extends Activity {
private VideoView videoV
private Button btnHide, btnS
MediaController mediaC
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFormat(PixelFormat.TRANSLUCENT);
setContentView(R.layout.activity_main);
videoView = (VideoView) this.findViewById(R.id.video);
btnShow = (Button) this.findViewById(R.id.btnShow);
btnHide = (Button) this.findViewById(R.id.btnHide);
// 使用这种方式创建MediaController将不会显示“快进”和“快退”两个按钮
// mediaController = new MediaController(this,false);
mediaController = new MediaController(this);
//File videoFile = new File(&/mnt/sdcard/movie.3gp&);
File videoFile = new File(&/mnt/sdcard/vid320X240.3gp&);
// 先判断这个文件是否存在
if (videoFile.exists()) {
System.out.println(&文件存在&);
videoView.setVideoPath(videoFile.getAbsolutePath());
System.out.println(videoFile.getAbsolutePath());
// 设置VideView与MediaController建立关联
videoView.setMediaController(mediaController);
// 设置MediaController与VideView建立关联
mediaController.setMediaPlayer(videoView);
// 让VideoView获取焦点
videoView.requestFocus();
// 开始播放
videoView.start();
Toast.makeText(this, &文件不存在&, Toast.LENGTH_LONG).show();
btnShow.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (mediaController != null) {
// 使用0的话就一直显示直到调用hide()
mediaController.show(0);
btnHide.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (mediaController != null) {
mediaController.hide();
附上VvideoView 和 MediaController的方法。
常用方法:
public void setVideoPath (String path)
加载path路径的文件
public void setVideoURI (Uri uri)
加载uri所对应的视频
public void start ()
public void seekTo (int msec)
public void pause ()
public void stop()
public void setMediaController (MediaController controller)
设置MediaController对象
关于MediaController类
这个类也是android.widget包下的,它是一个包含控件MediaPlayer多媒体播放的组件,它含有“播放”、暂停、”、“快倒”、“快进”和进步条的一个组件
public MediaController (Context context, AttributeSet attrs)
通过Context对象和AttributeSet对象来创建MediaController对象
public MediaController (Context context, boolean useFastForward)
通过Context对象和指定是否允许用户控制进度。也就是是否有“快进”、“快退”按钮。如果设置为false就不会显示显示(如下图片一)
public MediaController (Context context)
通过Context来创建MediaController对象
public void hide()
设置隐藏MediaController
public void show()
设置显示MediaController
public void show(int timeout)
设置MediaController显示的时间以毫秒计算。如果设置为0则一直到调用hide()方法才隐藏
public void setMediaPlayer (MediaController.MediaPlayerControl player)
设置MediaPlayer使之与要绑定的控件绑定在一起其参数是一个MediaController.MediaPlayerControl 静态接口的对象,(而VideoView是MediaController.MediaPlayerControl静态接口的子实现类,这就使得我们可以更好的控制我们的视频播放进度)
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:898959次
积分:9565
积分:9565
排名:第1840名
原创:107篇
转载:340篇
评论:88条
(1)(1)(1)(1)(8)(6)(5)(1)(2)(3)(6)(1)(1)(1)(1)(1)(2)(12)(3)(1)(2)(3)(20)(18)(11)(4)(8)(6)(17)(12)(17)(11)(11)(6)(15)(16)(16)(4)(6)(1)(17)(11)(9)(9)(14)(11)(20)(18)(67)(9)

我要回帖

更多关于 videoview assets 的文章

 

随机推荐