111,094
社区成员




using System;
using System.Threading;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Android.Media;
using Android.Util;
namespace mediaPlayer
{
[Activity(Label = "mediaPlayer", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity,MediaPlayer.IOnCompletionListener
{
int count = 1;
MediaPlayer idPlayer;
TextView tv;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
// Get our button from the layout resource,
// and attach an event to it
Button button = FindViewById<Button>(Resource.Id.MyButton);
button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); };
Button playId = FindViewById<Button>(Resource.Id.button1);
playId.Click += playId_Click;
Button stop = FindViewById<Button>(Resource.Id.button2);
stop.Click += playNet_Click;
Button pause = FindViewById<Button>(Resource.Id.button3);
pause.Click += playFile_Click;
Button video = FindViewById<Button>(Resource.Id.button4);
video.Click += video_Click;
tv = FindViewById<TextView>(Resource.Id.textView1);
}
void video_Click(object sender, EventArgs e)
{
Intent intent = new Intent(this, typeof(Video));
StartActivity(intent);
}
void playFile_Click(object sender, EventArgs e)
{
idPlayer.Pause();
}
void playNet_Click(object sender, EventArgs e)
{
idPlayer.Stop();
//int position = idPlayer.CurrentPosition / 1000;
//Toast.MakeText(this, position.ToString(), ToastLength.Short).Show();
}
void playId_Click(object sender, EventArgs e)
{
idPlayer = new MediaPlayer();
if (idPlayer != null)
{
idPlayer.SetDataSource(this.Resources.OpenRawResourceFd(Resource.Raw.yshq).FileDescriptor);
idPlayer.SetOnCompletionListener(this);
idPlayer.Prepare();
idPlayer.Start();
Thread thread = new Thread(new ThreadStart(Run));
thread.Start();
}
}
private void Run()
{
while (true)
{
Thread.Sleep(1000);
int i = (idPlayer.CurrentPosition / 1000);
RunOnUiThread(() =>
{
//打印当前音乐播放当前时间和总时间
//当前时间输出正确
//总共时间输出415 (总共时间为15s)
tv.Text = i.ToString() + "&&&" +(idPlayer.Duration).ToString();
});
if(i == 15)
{
break;
}
}
}
public void OnCompletion(MediaPlayer mp)
{
mp.Stop();
mp.Release();
}
}
}