我想使用标准的Android媒体播放器在Xamarin应用中播放一首歌。
我有两个问题,我无法自己回答:
然而,这是我用来准备媒体播放器的方法:
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();
}
}
答案 0 :(得分:0)
我尝试将其保存在原始文件夹中,但这似乎无法正常工作
您不能直接使用字符串“Ressources.raw.test”作为DataSource
。如果您需要播放Resource/Raw
文件夹中的歌曲,这里有两个解决方案。
您可以尝试使用MediaPlayer.Create(Context context, int resid) 方法:
为给定资源ID创建MediaPlayer的便捷方法。成功时,prepare()已经被调用,不能再被调用。
用法:
MediaPlayer player = MediaPlayer.Create(this, Resource.Raw.test);
player.Start();
将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();