【发布时间】: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#。我很困惑。还是谢谢你。