我想使用Xamarin C #Android查找音轨的持续时间。我正在使用MediaPlayer播放我的音频文件。
SO和官方文档上的大多数其他答案都指向了MediaPlayer class
中的一个简单方法MediaPlayer.GetDuration()然而,intellisense并没有把它作为一种选择。获取跟踪信息可能有用吗?
以下完整代码
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();
}
答案 0 :(得分:2)
Xamarin通常将Java样式Get方法重命名为标准C#属性
因此,Java中的GetDuration()
在C#
Duration