天天看点

Android模拟器放出视频,android模拟器中播放视频(有声无影等问题的解决)

今天按照《Android应用开发揭秘》中的代码做了个播放视频的小例子,播放后发现有声无音,发现是视频分辨率过大造成的。

使用格式工厂工具把MP4转换一下就可以了。

转换的配置如图

Android模拟器放出视频,android模拟器中播放视频(有声无影等问题的解决)

转换后的文件属性如下:

Android模拟器放出视频,android模拟器中播放视频(有声无影等问题的解决)

那个帧速率是重点,要调低。

相关的代码:

package com.yarin.android.Examples_07_03;

import android.app.Activity;

import android.content.pm.ActivityInfo;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.MediaController;

import android.widget.VideoView;

import android.media.*;

import android.view.Window;

import android.view.WindowManager;

public class Activity01 extends Activity

{

private static final String TAG="VideoView";

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

//不要标题

requestWindowFeature(Window.FEATURE_NO_TITLE);

//设置成全屏模式

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);

//强制为横屏

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

setContentView(R.layout.main);

final VideoView videoView = (VideoView) findViewById(R.id.VideoView01);

Button PauseButton = (Button) this.findViewById(R.id.PauseButton);

Button LoadButton = (Button) this.findViewById(R.id.LoadButton);

Button PlayButton = (Button) this.findViewById(R.id.PlayButton);

LoadButton.setOnClickListener(new OnClickListener()

{

public void onClick(View arg0)

{

videoView.setVideoPath("/mnt/sdcard/aaoceans-clip.mp4");

videoView.setMediaController(new MediaController(Activity01.this));

videoView.requestFocus();

}

});

PlayButton.setOnClickListener(new OnClickListener()

{

public void onClick(View arg0)

{

Log.v(TAG,"start");

videoView.start();

Log.v(TAG,"start OK");

}

});

PauseButton.setOnClickListener(new OnClickListener()

{

public void onClick(View arg0)

{

videoView.pause();

}

});

}

}

main.xml中要添加

android:id="@+id/VideoView01"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

/>

android:layout_width="80px"

android:layout_height="wrap_content"

android:text="装载"

android:layout_x="30px"

android:layout_y="300px"

/>

android:layout_width="80px"

android:layout_height="wrap_content"

android:text="播放"

android:layout_x="120px"

android:layout_y="300px"

/>

android:layout_width="80px"

android:layout_height="wrap_content"

android:text="暂停"

android:layout_x="210px"

android:layout_y="300px"

/> VideoView的布局属性要设成fill_parent.