Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Xamarin中使用MediaPlayer获得曲目的持续时间_C#_Android_Audio_Xamarin - Fatal编程技术网

C# 如何在Xamarin中使用MediaPlayer获得曲目的持续时间

C# 如何在Xamarin中使用MediaPlayer获得曲目的持续时间,c#,android,audio,xamarin,C#,Android,Audio,Xamarin,我想使用Xamarin C#Android查找音频曲目的持续时间。我正在使用MediaPlayer播放我的音频文件 关于SO和官方文档的大多数其他答案都向我指出了一个简单的方法MediaPlayer.GetDuration() 然而,intellisense并没有将此作为一种选择。“获取曲目信息”会出现,这可能有用吗 完整代码如下 public void StartAudio() { if (player == null) { player = new Medi

我想使用Xamarin C#Android查找音频曲目的持续时间。我正在使用MediaPlayer播放我的音频文件

关于SO和官方文档的大多数其他答案都向我指出了一个简单的方法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();               
}

Xamarin通常将Java风格的Get方法重命名为标准C#属性


因此Java中的
GetDuration()
变成了C中的
Duration
Xamarin通常将Java风格的Get方法重命名为标准C属性


所以Java中的
GetDuration()
变成了C中的
Duration

该死。谢谢为什么文档中没有这么简单的东西?这正常吗?谢谢。你知道(出于好奇)为什么getDuration不存在吗?我使用的是标准的Xamarin C。我很困惑。无论如何谢谢你,该死的。谢谢为什么文档中没有这么简单的东西?这正常吗?谢谢。你知道(出于好奇)为什么getDuration不存在吗?我使用的是标准的Xamarin C。我很困惑。无论如何,谢谢你。