public static void PlayMusic(Context context, string dir, string file, SeekBar seekbar) { MediaPlayer mp = new MediaPlayer(); switch (dir) { case "assets": AssetFileDescriptor descriptor = context.Assets.OpenFd(file); mp.SetDataSource(descriptor.FileDescriptor, descriptor.StartOffset, descriptor.Length); descriptor.Close(); break; case "external": Java.IO.File filefd = new Java.IO.File(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath, file); mp.SetDataSource(context, Android.Net.Uri.FromFile(filefd)); break; } mp.Prepare(); mp.SetVolume(1f, 1f); mp.Looping = (true); mp.Start(); seekbar.IncrementSecondaryProgressBy(1); seekbar.SecondaryProgressTintMode = PorterDuff.Mode.Lighten; seekbar.Max = mp.Duration; System.Timers.Timer timer = new System.Timers.Timer(1000); timer.Start(); timer.Elapsed += delegate { // seekbar.SecondaryProgress = mp.CurrentPosition; seekbar.Progress = mp.CurrentPosition; }; mp.Completion += delegate { timer.Stop(); mp.Stop(); }; //seekbar.ProgressChanged += (s,e)=> //{ // mp.SeekTo(e.SeekBar.SecondaryProgress); //}; }