以為是從SD卡讀嗎?當然沒這麼簡單
這次採用的是把影像檔包到APK裡面來作讀取
關於這邊的程式碼
也簡單的公開給大家:
video.java
package org.example.video;
import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnErrorListener;
import android.net.Uri;
import android.os.Bundle;
import android.widget.VideoView;
public class Video extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
/全螢幕顯示//
setContentView(R.layout.main);
VideoView vView = (VideoView) findViewById(R.id.video);
Object vSource = "android.resource://org.example.video/" //這邊是播放的關鍵.檔按放在res/raw/XXXX
+ R.raw.video;
vView.setVideoURI(Uri.parse((String) vSource));
vView.setOnErrorListener(mOnErrorListener);
vView.requestFocus();
vView.start();
}
private OnErrorListener mOnErrorListener = new OnErrorListener() { //少了這一個會產生錯誤//
public boolean onError(MediaPlayer mp, int what, int extra) {
// Your code goes here
return true;
}
};
}
layout布置:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<VideoView
android:id="@+id/video"
android:layout_width="wrap_content"
android:layout_height="378dp"
android:layout_gravity="center" />
</FrameLayout>
經過好幾天的測試
終於可以播放,在網路上找到的大部份都是採用去sd卡裡面讀取
如果是在模擬器下,還要額外先把影像檔塞到data內
一開始一直以為是影片問題
到後面才發現少了一個errorlistener就會發生錯誤...
以及這個run到最後會卡在影片最後一個畫面就停止
ok 就先到這邊!!
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。