问题标签 [background-audio]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 在进程之间发送消息
我正在创建一个带有背景音频播放器的应用程序。根据 MS 的要求,播放器被实现为一个单独的 DLL,并存在于另一个进程中。
我可以通过更新BackgroundAudioPlayer.Instance.Track
对象将曲目名称传回我的 UI 进程。
但是,我希望我的 UI 也报告我的下载缓冲区的状态。
我可以在 WP7 上使用什么 IPC 方法来通知我的 GUI 进程?
更新:我考虑使用 4 个命名手动重置事件来传递 4 位数据 - 失败,WP7 仅支持仅适用于同一进程内的线程同步的未命名事件。
我考虑过 System.Windows.Messaging - 失败,SendCompletedCallback 引发“LocalMessage_CouldNotDeliverMessage”,并且文档说 WP7 不支持本地消息传递。
到目前为止,我只知道一种方法 - 将文件写入隔离存储,并使用命名互斥锁保护它们。我真的不想因为这样做而耗尽 NAND 闪存。有没有更好的方法?WP7 下面有 WinCE 内核,它有很多可用的方法——邮槽、LPC、RPC、COM、管道、共享内存等等——我不敢相信它们都没有暴露给 Silverlight……
windows-phone-7 - WP7 Background Audio - Memory Leak or Not?
I'm creating an app that plays background audio.
Here's the RAM usage of my background audio playing process:
Is this a memory leak or no?
I'm concerned because if / when it exceeds 15MB, the OS will silently kill my player, which is undesirable.
Is there a way to view what occupies that memory? My MediaStreamSource implementation only allocates single 512kb buffer on the startup, and never allocates a single byte while playing. BTW, the stream bitrate is 96 kbit/sec, which is the same as memory allocation rate of the app.
Is there a way to make the GC to be less lazy, and sleep for less then 8 minutes? I don't really like those spikes…
Update 2013-04-21: looks like some OS update (most likely the 7.8) has fixed the issue. Thanks for that, Microsoft! However, next time please note it in the update history :-)
windows-runtime - 在 Windows 8 商店应用程序处于后台时播放音乐
所以我尝试了几种不同的方法,这就是我所在的位置:
我使用此线程中显示的方法在 App.xaml 中设置 MediaElement(导航到其他页面后继续播放的全局 MediaElement)。切换窗格时保持音乐播放效果很好......
我设置播放器处理程序的方式是将所有方法(例如播放、暂停、下一曲目等)添加到 LayoutAware 页面。这样我就可以从任何视图控制播放器。当应用程序处于焦点时效果很好
如果我离开播放音乐的原始视图,并切换到另一个应用程序,它会继续在后台播放,这就是我想要的
但是,如果我先更改为不同的视图,然后将应用程序移至后台,它就会停止!
只有当我离开第一次开始播放音乐的面板时,它才会这样做。
例如,如果我这样做:
该应用程序继续播放音乐。
如果我那么:
音乐停止!
任何人都知道为什么会发生这种情况?如果您需要更多关于我如何设置的说明,请告诉我。
windows-phone-8 - InvalidOperation 异常,后台音频代理,Windows Phone 8
我正在尝试将背景 AudioPlayer 添加到 Windows Phone 8 应用程序。
我已经创建了主项目和后台音频代理。我在主项目中添加了对背景音频播放器的引用,并将以下内容添加到应用清单文件中。
我已经两次和三次检查了参考文献,我确信它们指向正确的东西。
我正在使用 IsolatedStorage 和以下代码在两个应用程序之间共享信息
这似乎可以很好地获取曲目名称,然后尝试创建 Audiotrack 以进行播放。此时,应用程序将抛出以下错误。
对于我的一生,我无法弄清楚是什么导致了错误。没有什么是根本原因跳出来的,我已经为其他应用程序做了几次,没有任何问题。
任何建议或见解表示赞赏。
编辑:根据要求,我在下面粘贴了 OnPLayStateChanged 代码
还要添加一些附加信息,在 GetNextTrack 中创建音轨时会引发错误,因此此代码块
c# - MediaElement 和 BackgroundAudioPlayer 之间的更改
现在我正在使用MediaElement
以下代码在我的应用程序中播放视频:
我想添加当用户转到后台并继续播放音频(不需要视频)时的可能性,所以我想用BackgroundAudioPlayer
这个。而且我想知道是否可以使用它们中的两个或者如何在它们之间混合。
c# - BackgroundAudioPlayer 正在“播放”但未调用 GetSampleAsync()
我正在使用自定义 MediaStreamSource 在后台代理中从网络流式传输音乐。在良好的网络条件下,这可以正常工作,但当网络连接不稳定时,就会出现一个奇怪的问题。
当曲目开始播放时,通过第一次调用 MediaStreamSource.GetSampleAsync() 一切顺利。因为连接不稳定,如果没有足够的数据可用,源调用 ReportGetSampleProgress(double) 并返回而不报告样本。这符合 MSDN 文档和代码示例。
奇怪的是根本没有对 GetSampleAsync 的进一步调用!随着缓冲的继续,源继续 ReportGetSampleProgress 直到样本准备好,此时它调用ReportGetSampleProgress(1.0)
以指示缓冲区已满。
我尝试了几种方法,包括:
ReportGetSampleCompleted
缓冲完成时;这失败了,因为下载事件来自任意线程,并且此方法显然对调用线程以及对 GetSampleAsync 的调用是否在堆栈上都很敏感;无效的调用情况会导致 COM 错误。- 在精确的错误情况下,停止并启动 BackgroundAudioPlayer:这将无法重新启动流式传输。
一旦最初无法读取示例挂起,我如何才能重新开始流式传输?
iphone - iOS MPMoviePlayerController 在后台播放音频
我有 MPMoviePlayerController 应该在后台播放视频的音频,并且应该由多任务播放/暂停控件控制。
更新 .plist 文件Required background modes
并调用以下命令后:
}
应用程序图标出现在多任务播放/暂停栏中,但这些按钮没有响应。
谢谢!
c# - Windows Phone BackgroundAudioPlayer:加载在源上具有 301 重定向的曲目
我为 windows phone 创建了一个音频播放器,它使用从外部 API 收集的歌曲播放列表。
此播放列表同时保存到客户端应用程序和后台音频播放器,以便在歌曲结束后即使应用程序未运行,它也可以继续播放下一首曲目。
但是,此 API 返回带有 url 的源轨道,这些 url 是要流式传输的文件的实际 REDIRECTS。
如果我尝试将这些直接加载到后台音频播放器中,则会出现异常。
我试图通过允许客户端应用程序执行重定向并在将结果 url 传递给播放器之前捕获结果 url 并更新客户端和应用程序上的播放列表来解决此问题。
这工作得很好。
但是,如果我随后离开我的应用程序,后台音频代理会继续播放,这意味着更新客户端上的 url 的机制不会触发,并且原始重定向 url 正在加载,导致应用程序崩溃。
我试图在后台音频代理上做同样的事情(发出 HEAD 请求并从响应中获取结果 uri),但我无法让它工作;它永远不会从网络请求返回!
这是我想要完成的要点:
但是里面的回调永远不会执行,程序只是停止,直到我杀死它。
我确信必须有更好的方法来处理这个问题,但我发现关于这个问题的文档为零。其他人到底是如何处理这个问题的?
我虽然关于在客户端上触发一个计时器来解析列表并发出请求并即时更新整个内容,但这意味着每次应用程序启动时都会依次执行 100 个请求(因为它每次都会获得新的轨道时间),所以这似乎不是一个有效的解决方案......
有人在这里有什么想法吗?他们将不胜感激!
c# - 订阅 Windows Phone UVC 事件,可能吗?
我制作了一个 WP7.1 应用程序,它使用
play() 和 stop(),并订阅来自
更新用户界面。我有一个播放按钮,当我单击它时,我会更新 UI 以显示“缓冲”动画,而当 BackgroundAudioPlayer.Instance.PlayerState 更改为 PlayState.Playing 时,我会显示“正在播放”动画。这按预期工作。但是,当按下通用音量控制上的播放时,会显示“已停止”动画,直到 PlayState.Playing 事件将 UI 更新为“正在播放”。
因此,我需要检测何时按下 UVC 上的播放按钮(以显示“缓冲”动画,直到声音开始播放),但我找不到与此相对应的事件,有什么想法吗?
c# - 从 BackgroundAudioPlayer 获取持续时间
我正在使用背景音频播放器播放音频文件。我尝试使用 background.instance.track.duration.totalseconds 方法获取音频的持续时间。但是当我运行 app 方法时,每次都返回“0”。如果我通过断点运行代码,则会检索持续时间。下面是我的代码。
请提出解决方案。在此先感谢。