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

标签 c# android xamarin mp3 media

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

相关文章:

c# 字典如何为单个键添加多个值?

android - 如何在重新安装应用程序时删除数据

ios - UITabBarController 等待加载 UIViewController 直到选择 Xamarin

ios - 实现Xamarin iOS语音转文本

c# - WPF Avalon 向导绑定(bind)问题

c# - 如何在保存前检查重复项?

C# 轮询 TCP 服务器

android - 没有字典提示的 AutoCompleteTextView

android - 大屏电脑全屏,宽度超过最大宽度,出现灰色背景

java - ListView 向下滚动更改行颜色