using Android.App;
using Android.Content;
using Android.Media;
using Android.OS;
using Android.Util;
namespace android_by_csharp.scripts
{
[Service]
public class MusicService : Service
{
private string TAG = nameof(MusicService);
public static bool IsPlay; // 记录播放状态
private MediaPlayer _player; // MediaPlayer对象
public override void OnCreate()
{
base.OnCreate();
_player = MediaPlayer.Create(this, Resource.Raw.music);
Log.Debug(TAG, $"{TAG} ---> OnCreate");
}
public override StartCommandResult OnStartCommand(Intent intent, StartCommandFlags flags, int startId)
{
if (!_player.IsPlaying)
{
_player.Start();
IsPlay = _player.IsPlaying;
}
Log.Debug(TAG, $"{TAG} ---> OnStartCommand");
return base.OnStartCommand(intent, flags, startId);
}
public override void OnDestroy()
{
base.OnDestroy();
_player.Stop();
IsPlay = _player.IsPlaying;
_player.Release(); // 释放资源
Log.Debug(TAG, $"{TAG} ---> OnDestroy");
}
public override IBinder OnBind(Intent intent)
{
return null;
}
}
}
Activity scripts/MusicActivity.cs
using Android.App;
using Android.Content;
using Android.Media;
using Android.OS;
using Android.Util;
using Android.Widget;
namespace android_by_csharp.scripts
{
[Activity(Label = "MusicActivity", Theme = "@style/MusicActivityTheme")]
public class MusicActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.music_dialog);
// 服务下的媒体播放(页面执行销毁后音乐还在,再次点击按钮会停止音乐的服务)
var playPauseBtn1 = FindViewById
Activity MainActivity.cs
using android_by_csharp.scripts;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Widget;
namespace android_by_csharp
{
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.main);
var btn01 = FindViewById(Resource.Id.btn01);
if (btn01 != null) btn01.Click += (sender, args) => StartActivity(new Intent(this, typeof(MusicActivity)));
}
}
}
评论列表(0条)