【问题标题】:Where to put media resource and start media player?在哪里放置媒体资源并启动媒体播放器?
【发布时间】:2018-01-19 13:44:50
【问题描述】:

我想使用标准的 android 媒体播放器在 Xamarin 应用程序中播放歌曲。

我有两个问题我自己无法回答:

  1. 我在此处放置媒体文件(.mp3 文件)或如何链接到该文件(它也保存在我的 SD 卡上)我尝试将其保存在原始文件夹中,但似乎没有上班
  2. 如何正确启动播放器?要么我的代码不起作用,要么播放器找不到文件,因为它没有正确存储。

不过,这是我用来准备媒体播放器的方法:

protected MediaPlayer player;

public void StartPlayer() {
    if (player == null) {
        player = new MediaPlayer();
        player.SetDataSource("Ressources.raw.test");
        player.Prepare();
        player.Start();
        text = "Running";
    } else {
        player.Reset();
        player.SetDataSource("Ressources.raw.test");
        player.Prepare();
        player.Start();
    }
}

【问题讨论】:

    标签: c# android visual-studio xamarin.android


    【解决方案1】:

    我尝试将其保存在原始文件夹中,但这似乎不起作用

    您不能直接使用字符串“Ressources.raw.test”作为DataSource。如果您需要播放Resource/Raw 文件夹中的歌曲,这里有两种解决方案。

    解决方案 1:

    您可以尝试使用MediaPlayer.Create(Context context, int resid) 方法:

    为给定资源 ID 创建 MediaPlayer 的便捷方法。成功时,prepare() 将已经被调用,并且不能再次调用。

    用法:

    MediaPlayer player = MediaPlayer.Create(this, Resource.Raw.test);
    player.Start();
    

    解决方案 2:

    将您的Resource/Raw/test 路径转换为Android.Net.Uri

    player = new MediaPlayer();
    Android.Net.Uri uri = Android.Net.Uri.Parse("android.resource://" + PackageName + "/" + Resource.Raw.test);
    player.SetDataSource(this, uri2);
    player.Prepare();
    player.Start();
    

    如何链接到文件(它也保存在我的 SD 卡上)

    解决方案:

    尝试使用SetDataSource (Context context, Uri uri)方法,例如:

    player = new MediaPlayer();
    
    //My file path is Path == file:///storage/emulated/0/netease/cloudmusic/Music/love.MP3
    var uri = Android.Net.Uri.Parse("file://" + Android.OS.Environment.ExternalStorageDirectory + "/netease/cloudmusic/Music/love.MP3");
    
    player.SetDataSource(this, uri);
    player.Prepare();
    player.Start();
    

    【讨论】:

    • 非常感谢 :D 正如我所说,我是新手?
    • @GodmasterofDoom,如果有任何问题,请随时提问。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多