async Task <EdgeServerResult> GetEdgeServerAsync(Uri currentStreamUri) { EdgeServerResult result = null; if (EdgeServerMonitor != null) { try { #if SILVERLIGHT result = await EdgeServerMonitor.GetEdgeServerAsync(currentStreamUri, cts.Token); #else result = await EdgeServerMonitor.GetEdgeServerAsync(currentStreamUri).AsTask(cts.Token); #endif } catch (OperationCanceledException) { throw; } catch { /* unable to get edge server info, nothing we can do but continue */ } } return(result ?? EdgeServerResult.Empty); }
async void player_Loaded(object sender, RoutedEventArgs e) { var configFileUrl = new Uri("ms-appx:///AudienceInsightConfig.xml"); // Audience Insight config var batchingConfig = await BatchingConfigFactory.Load(configFileUrl); var dataClient = (RESTDataClient)batchingConfig.BatchAgent; dataClient.AdditionalHttpHeaders.Add("Authorization-Token", "{2842C782-562E-4250-A1A2-F66D55B5EA15}"); var batchinglogAgent = new BatchingLogAgent(batchingConfig); var aiLoggingTarget = new AudienceInsightLoggingTarget(batchinglogAgent); Microsoft.Media.Analytics.LoggingService.Current.LoggingTargets.Add(aiLoggingTarget); // Player Framework analytics config var analyticsConfig = await AnalyticsConfig.Load(configFileUrl); var analyticsPlugin = new AnalyticsPlugin(analyticsConfig); var adaptivePlugin = player.Plugins.OfType<AdaptivePlugin>().FirstOrDefault(); var adaptiveMonitorFactory = new AdaptiveMonitorFactory(adaptivePlugin.Manager); var edgeServerMonitor = new EdgeServerMonitor(); analyticsPlugin.AdaptiveMonitor = adaptiveMonitorFactory.AdaptiveMonitor; analyticsPlugin.EdgeServerMonitor = edgeServerMonitor; player.Plugins.Add(analyticsPlugin); // Audience Insight ad tracking config analyticsPlugin.AnalyticsCollector.LoggingSources.Add(new AdvertisingLoggingSource(player.GetAdHandlerPlugin().AdHandlerController)); // -or- //LoggingService.Current.LoggingSources.Add(new AdvertisingLoggingSource(player.GetAdHandlerPlugin().AdHandlerController)); }