/// <summary> /// Lock the wifi so we can still stream under lock screen /// </summary> public void AquireWifiLock() { if (!wifiLock.IsHeld) { wifiLock.Acquire(); } }
public void Play(MediaSession.QueueItem item) { var mediaHasChanged = InitPlayerStates(item.Description.MediaId); if (MusicPlayerState == PlaybackStateCode.Paused && !mediaHasChanged && _mediaPlayer != null) { ConfigMediaPlayerState(); } else { MusicPlayerState = PlaybackStateCode.Stopped; CleanUp(false); MediaMetadata track = _musicProvider.GetMusic( HierarchyHelper.ExtractMusicIDFromMediaID(item.Description.MediaId)); string source = track.GetString(MusicProvider.PodcastSource); try { _mediaPlayer.Reset(); MusicPlayerState = PlaybackStateCode.Buffering; _mediaPlayer.SetAudioStreamType(Android.Media.Stream.Music); _mediaPlayer.SetDataSource(source); _mediaPlayer.PrepareAsync(); _wifiLock.Acquire(); _musicService.OnPlaybackStatusChanged(MusicPlayerState); } catch (Exception ex) { Logger.Error(ex, "Error playing song"); _musicService.OnError(ex.Message); } } }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); TabLayoutResource = Resource.Layout.Tabbar; ToolbarResource = Resource.Layout.Toolbar; MessagingCenter.Subscribe <ViewModels.StreamPageViewModel>(this, "landscape", sender => { LockRotation(Orientation.Horizontal); }); MessagingCenter.Subscribe <ViewModels.StreamPageViewModel>(this, "portrait", sender => { LockRotation(Orientation.Vertical); }); Popup.Init(this, savedInstanceState); Forms.Init(this, savedInstanceState); AuthenticationConfiguration.Init(this, savedInstanceState); if (ApplicationContext.GetSystemService(WifiService) is WifiManager wifiManager) { WifiLock = wifiManager.CreateWifiLock(WifiMode.FullHighPerf, WifiTag); WifiLock.SetReferenceCounted(false); WifiLock.Acquire(); } LoadApplication(new App()); }
/// <summary> /// Lock the wifi so we can still stream under lock screen /// </summary> private void AquireWifiLock() { if (_wifiLock == null) { _wifiLock = _wifiManager.CreateWifiLock(WifiMode.Full, "xamarin_wifi_lock"); } _wifiLock.Acquire(); }
/// <summary> /// Lock the wifi so we can still stream under lock screen /// </summary> public void AquireWifiLock() { if (wifiLock == null) { wifiLock = wifiManager.CreateWifiLock(WifiMode.Full, "xamarin_wifi_lock"); } wifiLock.Acquire(); }
private void AquireWifiLock() { if (wifiLock == null) { wifiLock = wifiManager.CreateWifiLock(WifiMode.Full, "wifi_lock"); } wifiLock.Acquire(); }
/// <summary> /// Lock the wifi so we can still stream under lock screen /// </summary> private void AquireWifiLock() { if (wifiLock == null) { wifiLock = wifiManager.CreateWifiLock(global::Android.Net.WifiMode.Full, nameof(AudioPlayer)); } wifiLock.Acquire(); }
void Start() { Toast.MakeText(ApplicationContext, "Stream Playing", ToastLength.Short).Show(); player.Start(); am.RequestAudioFocus(this, Stream.Music, AudioFocus.Gain); wifiLock.Acquire(); StartForeground(); //makes the service stay alive. currentState = MediaStates.Started; }
public RadioStationServiceLock(Context context) { _wifiManager = (WifiManager)context.GetSystemService(Context.WifiService); _powerManager = (PowerManager)context.GetSystemService(Context.PowerService); _wifiLock = _wifiManager.CreateWifiLock(WifiMode.Full, "wzxv.app"); _wifiLock.Acquire(); _powerWakeLock = _powerManager.NewWakeLock(WakeLockFlags.Partial, "wzxv.app"); _powerWakeLock.Acquire(); }
public void PlayResumePlayer() { if (MediaPlayerState == MediaPlayerState.Stopped || MediaPlayerState == MediaPlayerState.None) { PlaySong(AudioPlayerHelper.CurrentQueueSong); return; } try { if (!_wifiLock.IsHeld) { _wifiLock.Acquire(); } _player.Start(); MediaPlayerState = MediaPlayerState.Playing; } catch { MediaPlayerState = MediaPlayerState.None; } }
public override void OnCreate() { base.OnCreate(); Log.Debug(logTag, "OnCreate called in the Location Service"); var pm = (PowerManager)GetSystemService(Context.PowerService); _mWakeLock = pm.NewWakeLock(WakeLockFlags.Partial, "PartialWakeLockTag"); _mWakeLock.Acquire(); var wf = (WifiManager)GetSystemService(Context.WifiService); _wifiLock = wf.CreateWifiLock(Android.Net.WifiMode.Full, "WifiLockTag"); _wifiLock.Acquire(); }
public void Play(QueueItem item) { playOnFocusGain = true; TryToGetAudioFocus(); RegisterAudioNoisyReceiver(); string mediaId = item.Description.MediaId; bool mediaHasChanged = mediaId != CurrentMediaId; if (mediaHasChanged) { currentPosition = 0; CurrentMediaId = mediaId; } if (State == PlaybackStateCompat.StatePaused && !mediaHasChanged && mediaPlayer != null) { ConfigMediaPlayerState(); } else { State = PlaybackStateCompat.StateStopped; RelaxResources(false); MediaMetadataCompat track = musicProvider.GetMusic(item.Description.MediaId); string source = track.GetString(MusicProvider.CustomMetadataTrackSource); try { CreateMediaPlayerIfNeeded(); State = PlaybackStateCompat.StateBuffering; mediaPlayer.SetAudioStreamType(Android.Media.Stream.Music); mediaPlayer.SetDataSource(source); mediaPlayer.PrepareAsync(); wifiLock.Acquire(); Callback?.OnPlaybackStatusChanged(State); } catch (IOException ex) { LogHelper.Error(Tag, ex, "Exception playing song"); Callback?.OnError(ex.Message); } } }
private void _Start(string host, int port) { try { if (m_Running) { return; } Android.OS.Process.SetThreadPriority(ThreadPriority.UrgentAudio); PowerManager powerManager = (PowerManager)GetSystemService(PowerService); m_WakeLock = powerManager.NewWakeLock(WakeLockFlags.Partial, "snapdotnet:SnapcastPartialWakeLock"); m_WakeLock.Acquire(); WifiManager wifiManager = (WifiManager)GetSystemService(WifiService); m_WifiLock = wifiManager.CreateWifiLock(WifiMode.FullHighPerf, "snapdotnet:SnapcastWifiWakeLock"); m_WifiLock.Acquire(); m_Host = host; m_Port = port; _StartProcess(); } catch (Exception e) { e.PrintStackTrace(); if (m_SnapclientListener != null) { m_SnapclientListener.OnError(this, e.Message, e); } _Stop(); } }
protected override void OnCreate(Bundle savedInstanceState) { AppCenter.Start("b17f9c9d-e90c-488f-8c4b-92ef3e305c0d", typeof(Analytics), typeof(Distribute)); var versionInfo = Application.Context.ApplicationContext?.PackageManager?.GetPackageInfo(Application.Context.ApplicationContext.PackageName, 0); //var username = System.Security.Principal.WindowsIdentity.GetCurrent(); SentryXamarin.Init(o => { o.AddXamarinFormsIntegration(); o.Dsn = "https://[email protected]/5390642"; o.Release = $"TacControl@{versionInfo?.VersionName}:{versionInfo?.LongVersionCode}"; o.Environment = //username == "Dedmen-PC\\dedmen" ? "Dev" : "Alpha"; }); WifiManager wifiMgr = (WifiManager)ApplicationContext.GetSystemService(Context.WifiService); wifiLock = wifiMgr.CreateWifiLock(WifiMode.Full, "TacControl-udp"); wifiLock.SetReferenceCounted(true); wifiLock.Acquire(); castLock = wifiMgr.CreateMulticastLock("TacControl-udp"); castLock.SetReferenceCounted(true); castLock.Acquire(); ConnectivityManager conMgr = (ConnectivityManager)ApplicationContext.GetSystemService(Context.ConnectivityService); var stuff = conMgr.GetAllNetworks(); var wifiNet = stuff.FirstOrDefault(x => conMgr.GetNetworkInfo(x).Type == ConnectivityType.Wifi); if (wifiNet != null) { var res = conMgr.BindProcessToNetwork(wifiNet); var info = conMgr.GetNetworkInfo(wifiNet); var connInfo = wifiMgr.ConnectionInfo; } //Networking.ConnectionInfo TabLayoutResource = Resource.Layout.Tabbar; ToolbarResource = Resource.Layout.Toolbar; base.OnCreate(savedInstanceState); Xamarin.Essentials.Platform.Init(this, savedInstanceState); global::Xamarin.Forms.Forms.Init(this, savedInstanceState); Android.Views.Window window = Window; window.AddFlags(WindowManagerFlags.KeepScreenOn); window.AddFlags(WindowManagerFlags.Fullscreen); LoadApplication(new App((action) => { TaskCompletionSource <object> tcs = new TaskCompletionSource <object>(); bool isMain = MainThread.IsMainThread; RunOnUiThread(() => { try { action(); tcs.SetResult(null); } catch (Exception ex) { tcs.SetException(ex); } }); return(tcs.Task); })); }