2011-07-25 91 views
0

如何爲播放mp4視頻提供資源文件夾路徑?我正在使用以下代碼。如何給資源文件夾路徑播放mp4視頻?

請幫幫我。

String stringPath = "file:///android_asset/sample.mp4"; 
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
mediaPlayer.setDisplay(surfaceHolder); 
mediaPlayer.setDataSource(stringPath); 
mediaPlayer.prepare(); 
mediaPlayer.start(); 

但上面的代碼是給我以下警告&錯誤。

07-25 13:11:40.833: ERROR/MediaPlayer(11295): error (1, -2147483648) 
07-25 13:11:40.833: WARN/System.err(11295): java.io.IOException: Prepare failed.: status=0x1 
07-25 13:11:41.103: WARN/System.err(11295):  at android.media.MediaPlayer.prepare(Native Method) 
07-25 13:11:41.103: WARN/System.err(11295):  at com.arthisoft.tempforvideo2.AndroidVideoPlayer.playvideo(AndroidVideoPlayer.java:69) 
07-25 13:11:41.103: WARN/System.err(11295):  at com.arthisoft.tempforvideo2.AndroidVideoPlayer$2.onClick(AndroidVideoPlayer.java:52) 
07-25 13:11:41.113: WARN/System.err(11295):  at android.view.View.performClick(View.java:2408) 
07-25 13:11:41.113: WARN/System.err(11295):  at android.view.View$PerformClick.run(View.java:8816) 
07-25 13:11:41.123: WARN/System.err(11295):  at android.os.Handler.handleCallback(Handler.java:587) 
07-25 13:11:41.123: WARN/System.err(11295):  at android.os.Handler.dispatchMessage(Handler.java:92) 
07-25 13:11:41.123: WARN/System.err(11295):  at android.os.Looper.loop(Looper.java:123) 
07-25 13:11:41.134: WARN/System.err(11295):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
07-25 13:11:41.143: WARN/System.err(11295):  at java.lang.reflect.Method.invokeNative(Native Method) 
07-25 13:11:41.143: WARN/System.err(11295):  at java.lang.reflect.Method.invoke(Method.java:521) 
07-25 13:11:41.143: WARN/System.err(11295):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
07-25 13:11:41.153: WARN/System.err(11295):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
07-25 13:11:41.153: WARN/System.err(11295):  at dalvik.system.NativeStart.main(Native Method) 
07-25 13:11:41.153: ERROR/MediaPlayer(11295): start called in state 0 
07-25 13:11:41.163: ERROR/MediaPlayer(11295): error (-38, 0) 
07-25 13:11:41.243: ERROR/MediaPlayer(11295): Error (-38,0) 

回答

1

.mp4文件移動到文件夾raw/。然後,用這個替換你的字符串:

String stringPath = "android.resource://[your_package_name]/raw/sample" 
+0

上面的代碼給了我相同的錯誤和警告。 –

+0

試試這個:'mediaPlayer.setDataSource(this,Uri.parse(stringPath))'而不是你的第4行 – iTurki

+0

'this'是對你的上下文的引用,'stringPath'是我上面寫的。 – iTurki

1

請註明您的位置在SD卡或內部存儲器中。如果是在SD卡那麼這將是:

String stringPath = "/sdcard/android_asset/sample.mp4"; 
+0

我只用了內部存儲(資產文件夾) –

0

你必須做這樣的事情

mediaPlayer.setDataSource(AndroidVideoPlayer.this, Uri 
     .parse("android.resource://com.arthisoft.tempforvideo2/R.raw.sample")); 
+0

這不行。 –

+0

這取決於你的文件存儲在哪裏。您必須根據文件位置創建一個有效的URI。我的回答只是一個如何去做的例子。 – Reno

+0

我的文件存儲在我的項目的原始文件夾中。如果我複製SD卡上的文件,那麼這是工作,否則不工作。 –