如何在 Xamarin 中使用 MediaPlayer 获取曲目的持续时间
Posted
技术标签:
【中文标题】如何在 Xamarin 中使用 MediaPlayer 获取曲目的持续时间【英文标题】:How do I get duration of track using MediaPlayer in Xamarin 【发布时间】:2017-08-14 11:07:38 【问题描述】:我想使用 Xamarin C# android 查找音轨的持续时间。我正在使用 MediaPlayer 播放我的音频文件。
关于 SO 和官方文档的大多数其他答案都指向我在 MediaPlayer class 中的一个简单方法 MediaPlayer.GetDuration()
但是,intellisense 并未将此作为选项。 Get Track Info 出现了,这可能有用吗?
完整代码如下
public void StartAudio()
if (player == null)
player = new MediaPlayer();
player.Completion += PlayNextTrack;
else
player.Reset();
player.Looping = false;
AssetFileDescriptor descriptor = Assets.OpenFd(currentTrack.FileName.ToString());
player.SetDataSource(descriptor.FileDescriptor,descriptor.StartOffset,descriptor.Length);
player.Prepare();
player.Start();
if (currentTrack.TrackType == TrackType.Pause)
int timerLength = 0;
int duration = player.GetDuration();
timerLength = duration - 10; // or something...
StartAlarmClockTimer(timerLength); // Special Case. Attach a countdown timer to this track
Toast.MakeText(this, "Playing Track " + currentTrack.TrackNumber.ToString(), ToastLength.Short).Show();
【问题讨论】:
该死的。谢谢。为什么文档中没有这么简单的东西?这正常吗? 谢谢。你知道(出于好奇)为什么 getDuration 不存在吗? 我使用的是标准的 Xamarin C#。我很困惑。还是谢谢你。 【参考方案1】:Xamarin 通常将 Java 样式的 Get 方法重命名为标准 C# 属性
因此,Java 中的 GetDuration()
在 C# 中变为 Duration
【讨论】:
以上是关于如何在 Xamarin 中使用 MediaPlayer 获取曲目的持续时间的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Xamarin.Forms.Maps(无 Xamarin.Forms.GoogleMaps)在地图中应用样式或更改颜色
如何在 Xamarin 中使用 Google Map id?
如何在 Appium 中使用 javascript 单击 Xamarin 元素?
如何使用 Xamarin 在 Android 中同步获取 GPS 位置更新?