2017-06-02 10 views
0

私のエミュレータからビデオビューでmp4ビデオを表示しようとしていて、サムネイルを使用してビデオのサムネイルを表示しようとしていますが、 "私は私のビデオが/data/media/0/SampleVideo1.mp4上にあることを確認できるデバイスモニタを使用してVideoViewのエミュレータsdカードからビデオを再生する - Android(Xamarin)

Android.Net.Uri vid = Android.Net.Uri.Parse("android.resource://" + PackageName + "/" + Resource.Drawable.SampleVideo1) 

:私は私が資産フォルダからビデオを再生することができますので、私は間違ったパスを取得していますと仮定していますGenymotionでビデオをドラッグアンドドロップすると、ファイルがsdcard/Downloadにコピーされたと言われました。他のスレッドから私はこのようなパスを与える人を見た:

static string path = global::Android.OS.Environment.ExternalStorageDirectory.AbsolutePath; 
string file = System.IO.Path.Combine(path.ToString(), "SampleVideo1.mp4"); 

をし、私もこの方法を試してみました:私は間違っているとするので、パスを設定するための正しい方法であるのです何

var vidPath = "/data/media/0/SampleVideo1.mp4"; 
videoview.SetVideoPath(vidPath); 

私のビデオは/ data/media/0 /にありますか?

答えて

0

私のビデオが/ data/media/0 /にあることを知っているので、私は間違ったことをしています。

あなたのファイルパスは、私はあなたのファイルが外部ストレージ(SDカード)に保存されていると思ったあなたのコードから、間違っている可能性があり、その後、ファイルパスはこのように、たとえば次のようになります。

/storage/0/Movies/your file

ファイルパスは/ data/media/0 /です。内部ストレージはEnvironment.DataDirectoryです。アプリケーションにはシステムメディアの下でファイルを読み書きする権限がありません。外部ストレージEnvironment.ExternalStorageDirectoryなど、またはアプリのローカルデータ(例:FilesDir

あなたの質問のタイトルに基づいて、あなたは、ファイルがここでは例のために配置する必要があります。 enter image description here

そして、このような例のコード:ご返信用

var filename = "one.mp4"; 
var path = System.IO.Path.Combine(Environment.ExternalStorageDirectory.AbsoluteFile.ToString(), filename); 
videoView.SetVideoPath(path); 
videoView.Start(); 
+0

おかげで、私は自分のファイルを配置していますどこに提案して、私のパスは今:/storage/emulated/0/myVideo.mp4ですが、私はまだこのビデオを再生できません。私はマニフェストファイル上で選択された読み書き権限を持っています。何が今何が間違っているアイデアですか?そして、ダブルチェックするには、環境はAndroid.OS.Environmentで、System.Environmentではなくてはなりませんか? – slwjc

+0

それは私のエミュレータ(API 23)だったことが判明し、API 22 – slwjc

関連する問題