Tag: background audio

在UWP App的不同页面中运行背景音频

我正在制作一个UWP应用程序,我在Button Click事件的MainPage中运行Background Audio。 当我移动到另一个页面时,还有一个不同的媒体可以在那里播放背景音频任务。 如何阻止当前播放的任务运行另一个? 我应该全球定义什么? 有关此问题的任何帮助? 编辑 我正在使用这个示例: https : //github.com/Microsoft/Windows-universal-samples/tree/master/Samples/BackgroundAudio当第一页的backgroundAudio正在运行时,我转到第二页和点击事件我用以下代码设置了一个新的List: // First update the persisted start track ApplicationSettingsHelper.SaveSettingsValue(ApplicationSettingsConstants.TrackId, RadioFacade.mySongs[0].MediaUri.ToString()); //here ApplicationSettingsHelper.SaveSettingsValue(ApplicationSettingsConstants.Position, new TimeSpan().ToString()); // Start task StartBackgroundAudioTask(); 但是新歌的运行时间超过了估计的时间并输入了此方法的其他内容: private void StartBackgroundAudioTask() { AddMediaPlayerEventHandlers(); var startResult = this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { bool result = backgroundAudioTaskStarted.WaitOne(10000); //Send message to initiate playback if (result == true) […]

BackgroundAudioPlayer是’正在播放’但没有调用GetSampleAsync()

我使用自定义MediaStreamSource在后台代理中从Web流式传输音乐。 在良好的网络条件下,这种方法很好,但是当网络连接不稳定时,会出现一个奇怪的问题。 当曲目开始播放时,通过第一次调用MediaStreamSource.GetSampleAsync(),一切顺利。 由于连接不稳定,如果数据不足,则源调用ReportGetSampleProgress(double)并返回而不报告样本。 这符合MSDN文档和代码示例。 令人好奇的是,根本没有进一步调用GetSampleAsync! 当缓冲继续时,源继续ReportGetSampleProgress直到样本准备就绪,此时它调用ReportGetSampleProgress(1.0)来指示完整缓冲区。 我尝试了几种方法,包括: 缓冲完成后, ReportGetSampleCompleted ; 这会失败,因为下载事件会进入任意线程,并且此方法对调用线程以及对GetSampleAsync的调用是否在堆栈上显然都很敏感; 无效的调用情况会导致COM错误。 在精确的错误条件下,停止并启动BackgroundAudioPlayer:这无法重新启动流式传输。 一旦最初读取样本失败,我怎样才能再次进行流式传输?

如何检测WP8中是否播放背景音乐?

如果您知道如果您的应用程序在未经用户同意的情况下停止当前正在播放的音乐,则在您知道无法通 我确实在这里看到了这个可能适用于WP7应用程序的问题,但它显然不适用于WP8。 我认为它不起作用,因为WP8操作系统不支持XNA(它只是向后兼容,如果您使用7.1开发应用程序)。 有没有人遇到过在WP8中检测背景音乐的解决方案。

设置AudioTrack的AlbumArt

我在Windows Phone 8上使用背景音频播放器,我正在尝试为我的音轨设置专辑封面。 正如我在这里和在MSDN上看到的那样,图像必须是共享/媒体/ – 好吧我已经检查了图像是否在那里我尝试做: AudioTrack myTrack = new AudioTrack(track.source, track.Title, track.Artist, track.Album, new Uri(“shared/media/Episode29.jpg”, UriKind.Relative)); 音乐开始了,但没有图像。 难道我做错了什么? 我还在MSDN上运行了这里提到的背景音频播放器示例 ,我也看不到图像。

Windows Phone 8 – 2背景音频冲突和两个应用程序终止

大约一周前,我为Windows Phone商店提交了一个在线背景广播流媒体应用程序。 该应用程序非常好(因为我使用模拟器测试它,它在所有可能的部门都很好)但是当我提交它进行认证时,它失败了。 根据错误日志,如果有人已经从音乐+video中心播放音乐,然后尝试打开此应用程序,则两个应用程序都会崩溃并意外停止。 到目前为止,据我所知,这是因为音乐音乐+video中心也是背景音乐,同时播放2个背景音乐,应用程序正在崩溃。 这可能是其他一些原因,但所描述的似乎对我更合乎逻辑。 那么,是否有人可以告诉我如何更改音乐+video中心的应用程序状态? 我想暂时暂停或停止音乐+video中心的应用程序,以便应用程序的两个状态都不相同。 这样,应用程序不会在后台相互冲突。 在这方面有人可以帮助我吗?

来自AudioPlayerAgent的HttpWebRequest

我正在创建一个播放无尽音频流的应用程序。 有一个单独的Web服务,我可以查询以获取当前播放曲目的标题和艺术家。 我想要做的是每20秒查询一次该服务,然后相应地设置曲目标题/艺术家。 目前我正在使用背景AudioPlayerAgent,以便可以在我的应用程序之外播放流。 这是我到目前为止的代码: public AudioPlayer() { if (!_classInitialized) { _classInitialized = true; // Subscribe to the managed exception handler Deployment.Current.Dispatcher.BeginInvoke(delegate { Application.Current.UnhandledException += AudioPlayer_UnhandledException; }); trackTimer = new Timer(TrackTimerTick, null, 1000, 5000); } } public void TrackTimerTick(object state) { // Create a HttpWebrequest object to the desired URL. HttpWebRequest trackRequest = (HttpWebRequest)HttpWebRequest.Create(“”); // […]

当BackgroundAudioPlayer的实例处于活动状态时,如何在IsolatedStorage中保存设置?

我的解决方案中有两个项目。 让我们说项目A和项目B. 项目A. 这是主要项目,并有设置。 我有一个复选框,为用户提供“重复”曲目的选项。 该项目还可以访问PROJECT B的公共实例。 项目B. 它是BackgroundAudioAgent并且拥有自己的设置。 此项目无权访问PROJECT A设置。 因此,在PROJECT A中,我需要访问PROJECT B的设置并将其保存在那里。 因此,当启用“重复”时,代理会重新开始播放。 问题 当BackgroundAudioPlayer的实例运行时,我无法保存设置(换句话说,设置已保存,但不会产生任何影响)。 我总是要关闭实例,当我这样做时,可以更改设置。 题 做我想做的事最有效的方法是什么? 如何在不关闭BackgroundAudioPlayer实例的情况下保存IsolatedStorage中的设置? (因为我不想打断正在播放的任何曲目)。 代码:我需要做些什么来保存设置。 public bool SettingAudioRepeat { get { return GetValueOrDefault(SettingAudioRepeatKeyName, SettingAudioRepeatDefault); } set { if (AddOrUpdateValue(SettingAudioRepeatKeyName, value)) { bool resumePlay = false; try { if (BackgroundAudioPlayer.Instance.PlayerState != PlayState.Shutdown) { BackgroundAudioPlayer.Instance.Close(); resumePlay = true; } […]