//using System;
|
//using AVFoundation;
|
//using Foundation;
|
//using MediaPlayer;
|
//using Shared;
|
//using UIKit;
|
|
//namespace com.hdl.on
|
//{
|
// public static class Volume
|
// {
|
// /// <summary>
|
// /// 声音变化事件
|
// /// </summary>
|
// public static Action<int> VolumeChange;
|
// /// <summary>
|
// /// 设置当前音量
|
// /// </summary>
|
// /// <param name="volume">Volume.</param>
|
// public static int MusicVolume
|
// {
|
// set
|
// {
|
// if ((DateTime.Now - dateTime).TotalMilliseconds < 2000)
|
// {
|
// return;
|
// }
|
// foreach (var view in BaseViewController.MPVolumeView.Subviews)
|
// {
|
// if (view.GetType().Name == "UISlider")
|
// {
|
// (view as UISlider).SetValue((float)Math.Round(value / 100.0f, 2, MidpointRounding.AwayFromZero), false);
|
// beforeVolume = (view as UISlider).Value;
|
// //System.Console.WriteLine("接收到更新音量:" + (float)Math.Round(value / 100.0f, 2, MidpointRounding.AwayFromZero) + " " + beforeVolume);
|
// break;
|
// }
|
// }
|
// }
|
// }
|
// static System.DateTime dateTime = DateTime.MinValue;
|
// /// <summary>
|
// /// 之前的音量
|
// /// </summary>
|
// static float beforeVolume;
|
// public static void Init()
|
// {
|
// NSNotificationCenter.DefaultCenter.AddObserver(new NSString("AVSystemController_SystemVolumeDidChangeNotification"),
|
// (obj) =>
|
// {
|
// //如果应用进入后台,不执行音量变化
|
// if (UIApplication.SharedApplication.ApplicationState != UIApplicationState.Active || "Audio/Video" != obj.UserInfo.ObjectForKey(new NSString("AVSystemController_AudioCategoryNotificationParameter")).ToString())
|
// {
|
// return;
|
// }
|
// //System.Console.WriteLine("接收到音量变化事件");
|
// dateTime = DateTime.Now;
|
// var tempValue = obj.UserInfo.ObjectForKey(new NSString("AVSystemController_AudioVolumeNotificationParameter"));
|
// if (tempValue == null)
|
// {
|
// return;
|
// }
|
// try
|
// {
|
// //有时转换失败,可能有时值有问题
|
// var volume = 100 * float.Parse(tempValue.ToString());
|
// volume = (float)Math.Round(volume, 2, MidpointRounding.AwayFromZero);
|
// //System.Console.WriteLine("音量变化事件:" + volume + " " + beforeVolume * 100);
|
// if (VolumeChange != null && beforeVolume * 100 != volume)
|
// {
|
// VolumeChange((int)volume);
|
// }
|
// }
|
// catch { }
|
// });
|
// }
|
// }
|
//}
|