我正在为作业构建媒体播放器并使用 Xamarin IDE。 Xamarin 中的 MainActivity 文件具有 extern .cs。这意味着是 C# 文件,我对此遇到了一些麻烦。 我需要从 SD 卡获取数据。但是当我实现它时,我有异常“SetDataSource 失败”。 帮助我。
namespace PlayMusic
{
[Activity (Label = "PlayMusic", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
// Set our view from the "main" layout resource
SetContentView (Resource.Layout.Main);
// Get our button from the layout resource,
// and attach an event to it
Button play = FindViewById<Button> (Resource.Id.play_btn);
//MediaPlayer mp = MediaPlayer.Create (this, Resource.Raw.anniver);
MediaPlayer mp = new MediaPlayer ();
var directory = Android.OS.Environment.ExternalStorageDirectory;
var fullFileName = Path.Combine(directory.ToString(), "anniver.mp3");
mp.SetDataSource (fullFileName);
play.Click += delegate {
try{
mp.Start();
}
catch(Exception e)
{
e.StackTrace.ToString();
}
};
}
}
}
结果 fullFileName = "/storage/sdcard0/anniver.mp3" 但是当 IED 转到 SetDataSource(..) 语句时,出现异常 IOException,并且 SetDataSource 失败。 我检查了 anniver.mp3。那好。
最佳答案
由于您使用的是 Xamarin
,因此您可以使用 c#
的 Path.Combine
来访问您的文件,如下所示:
var directory = Android.OS.Environment.ExternalStorageDirectory;
var fullFileName = Path.Combine(directory.ToString(), "1.mp3");
if (File.Exists(fullFileName))
{
//proceed
}
关于c# - 通过 Xamarin IDE 从 SD 卡读取 .mp3 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33164807/