gpt4 book ai didi

c# - 通过 Xamarin IDE 从 SD 卡读取 .mp3 文件

转载 作者:行者123 更新时间:2023-11-30 01:50:16 24 4
gpt4 key购买 nike

我正在为作业构建媒体播放器并使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com