标签: background-audio

锁定屏幕上的AVAudioPlayer

我使用AVAudioPlayer(不是AVPlayer)实现了一个音频播放器.我可以使用以下方法处理远程控制事件.它的工作原理相当好的,到目前为止,但是我看到两个以上subtypes这些事件:UIEventSubtypeRemoteControlEndSeekingForwardUIEventSubtypeRemoteControlEndSeekingBackward.

- (void)remoteControlReceivedWithEvent:(UIEvent *)event {
    //if it is a remote control event handle it correctly
    if (event.type == UIEventTypeRemoteControl)
    {
        if (event.subtype == UIEventSubtypeRemoteControlPlay)
        {
            [self playAudio];
        }
        else if (event.subtype == UIEventSubtypeRemoteControlPause)
        {
            [self pauseAudio];
        }
        else if (event.subtype == UIEventSubtypeRemoteControlTogglePlayPause)
        {
            [self togglePlayPause];
        }
        else if (event.subtype == UIEventSubtypeRemoteControlBeginSeekingBackward)
        {
            [self rewindTheAudio]; //this method rewinds the audio by 15 seconds.
        }
        else if (event.subtype == UIEventSubtypeRemoteControlBeginSeekingForward)
        {
            [self …
Run Code Online (Sandbox Code Playgroud)

avaudioplayer ios avaudiosession background-audio mpnowplayinginfocenter

7
推荐指数
1
解决办法
5308
查看次数

PWA 在后台播放媒体

我有一个想法,要建立一个简单的移动网站,它可以在最小化甚至手机锁定时播放音乐。我知道对此的支持是有限的,所以想知道 PWA 是解决方案吗?我找不到很多关于后台支持 PWA 播放媒体的文档。那么有谁知道这在 Android 和 iOS 上是否可行,或者我可以在哪里找到有关此的更多信息?

提前致谢!

android ios background-audio progressive-web-apps

7
推荐指数
1
解决办法
3122
查看次数

AudioPlaybackAgent中的定时器

我有一个使用的互联网广播应用程序BackgroundAudioPlayer.

我需要音频播放代理中的一个计时器,它将更新从Internet广播电台的API中提取的BAP当前播放曲目的曲目标题.

添加DispatcherTimer到音频播放代理程序给我一个跨线程异常,并使用:

Deployment.Current.Dispatcher.BeginInvoke(() =>
            {
                // Code
            });
Run Code Online (Sandbox Code Playgroud)

没工作.

我需要这里的代码,因为如果我将更新代码放在应用程序本身,当用户导航离开应用程序时,更新会停止(与Windows 8的行为非常不同).

我不能使用预定代理,因为它们每30分钟只运行一次(IIRC).

这是可能的还是不能在Windows Phone上完成?

c# dispatchertimer background-agents background-audio windows-phone-8

6
推荐指数
1
解决办法
173
查看次数

BackgroundAudioPlayer无法开始播放

Windows Phone 8应用程序.我们正在使用AudioStreamingAgent/Mp3MediaStreamSource来播放可以在本地缓存或从Web加载的MP3文件.

下载文件时,我们仍然使用AudioStreamingAgent/Mp3MediaStreamSource来确保我们能够在播放当前时预先缓存下一个文件.是的,我们可以使用WP8内置播放器来缓存文件,但在这种情况下我们将无法预先缓存下一个文件.

问题:在几个曲目之后,BackgroundAudioPlayer不再开始播放了.

  1. 执行AudioStreamingAgent.OnBeginStreaming
  2. 执行创建MediaStreamSource的Сode
  3. AudioStreamer.SetSource方法使用新的MediaStreamSource实例执行
  4. PlayStateChanged在后台进程中使用PlayState.TrackReady触发,在这种情况下调用player.Play().

毕竟,我看到曲目显示在UVC中,但它处于"Paused"状态.在UVC中按"播放"会在后台调用OnUserAction调用player.Play().没有什么变化.

"卡住状态"的图片

有问题再现的样本,VS 2012(样本基于背景音频流媒体样本)

使用示例代码重现的步骤:

  1. 安装应用程序
  2. 按"预加载曲目"按钮.它将mp3文件从XAP复制到IsolatedStorage.
  3. 按"Track 1"按钮.在曲目开始播放后,按"Track 2"按钮.然后,在曲目2开始播放后,按"Track 3"按钮.
  4. 继续执行步骤3,直到按下"Track*"按钮轨道未开始播放.
  5. 最后的轨道选择将被示出为在两个UVC和上面的页上的进度条的有源轨道(参见图片)
  6. 在大多数情况下按其他轨道按钮没有任何区别.

在WP8和WP8.1开发人员预览版中,在设备和仿真器上都会重现该问题.

更新:内存不足是不是这样.使用示例代码重现问题并查看backgroundlog.xml文件显示该示例仅使用20 Mb中的6 Mb允许此图片上的最后一列是"内存使用情况|允许的最大内存使用量"

c# audio-streaming mediastreamsource background-audio windows-phone-8

6
推荐指数
1
解决办法
538
查看次数

应用程序暂停时,对AudioPlayerAgent中的UserAction做出反应

我有一个BackgroundAudioPlayer与之配合使用的音频播放器AudioPlayerAgent.一切都运行正常,除了有一个用例,我不知道如何处理.

如果我在我的应用程序中播放音频轨道然后用户切换到另一个应用程序,音频轨道将继续在后台播放 - 但我想我的应用程序现在已经被交换到内存并被暂停.

我的问题是:如果用户现在开始在另一个应用程序中播放音乐,我会将AudioPlayerAgent.UserAction.Stop操作作为对我的回调AudioAgent.但是,从我的应用程序的角度来看,我现在可以对此做些什么吗?我的意思是,我想保存用户在我的应用程序中的音频播放位置,但我的应用程序已被暂停,对吧?

当我的应用程序在前台并且音频停止时,我确实得到了该BackgroundAudioPlayer.Instance.PlayerState.Stopped事件.在这里,我通常保存播放的位置.但如果用户切换到另一个应用程序播放音乐,我不会得到这个事件.

所以我只是想知道如何处理这种情况.我有什么办法可以改善用户体验吗?

windows-phone-7 windows-phone-7.1 background-audio windows-phone-8

5
推荐指数
1
解决办法
310
查看次数

iOS MPMoviePlayerController在后台播放音频

我有MPMoviePlayerController应该在后台播放视频的音频,应该由多任务播放/暂停控件控制.

更新.plist文件Required background modes并调用以下内容后:

- (void)startBackgroundStreaming
{
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    [self becomeFirstResponder];

    NSError *activationError = nil;
    AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    [audioSession setCategory:AVAudioSessionCategoryPlayback error:&activationError];
    [audioSession setActive:YES error:&activationError];
Run Code Online (Sandbox Code Playgroud)

}

应用程序图标出现在多任务播放/暂停栏中,但这些按钮不响应.

谢谢!

iphone mpmovieplayercontroller multitasking ios background-audio

4
推荐指数
1
解决办法
6069
查看次数

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

大约一周前,我为Windows Phone商店提交了一个在线背景广播流媒体应用程序.应用程序非常好(因为我使用模拟器测试它,它在所有可能的部门都很好)但是当我提交它进行认证时,它失败了.

根据错误日志,如果有人已经从音乐+视频中心播放音乐,然后尝试打开此应用程序,则两个应用程序都会崩溃并意外停止.

到目前为止,据我所知,这是因为音乐音乐+视频中心也是背景音乐,同时播放2个背景音乐,应用程序正在崩溃.这可能是其他原因,但所描述的似乎对我更合乎逻辑.

那么,有没有人可以告诉我如何更改音乐+视频中心的应用程序状态?我想暂时暂停或停止音乐+视频中心的应用程序,以便应用程序的两个状态都不相同.通过这种方式,应用程序不会在后台相互冲突.

谁可以在这方面帮助我?

c# xaml background-agents background-audio windows-phone-8

3
推荐指数
1
解决办法
643
查看次数

如何在WP 8.1中访问媒体库?

Microsoft建议使用BackgroundMediaPlayer在WP 8.1中播放背景音频

官方样本访问音乐文件:

BackgroundMediaPlayer.Current.SetUriSource(new Uri("ms-appx:///Assets/Media/Ring01.wma"));
Run Code Online (Sandbox Code Playgroud)

但是这个例子没有解释如何访问音乐库.如何连接手机媒体库,包括艺术家,流派,播放列表和专辑?在以前的版本(WP7,WP8)中,Xna.Framework.Media.MediaPlayer负责此目的.但是之前的MediaPlayer不允许倒带.从我不明白如何访问完整的音乐库以使用功能齐全的有用播放器播放它的那一刻起.

media-player background-audio windows-phone-8.1

3
推荐指数
1
解决办法
1721
查看次数

InvalidOperation Exception,Background Audio Agent,Windows Phone 8

我正在尝试将后台AudioPlayer添加到Windows Phone 8应用程序中.

我已经创建了主项目和背景音频代理.我已将背景音频播放器的引用添加到主项目中,并将以下内容添加到应用清单文件中.

   <ExtendedTask Name="BackgroundTask">
       <BackgroundServiceAgent Name="myCastsbackgroundaudio" Type="myCastsbackgroundaudio.AudioPlayer" Source="myCastsbackgroundaudio" Specifier="AudioPlayerAgent"/>
    </ExtendedTask>
Run Code Online (Sandbox Code Playgroud)

我对参考文献进行了两次和三次检查,我确信他们指出了正确的事情.

我正在使用IsolatedStorage和以下代码在两个应用程序之间共享信息

    private AudioTrack GetNextTrack()
    {
      string  myTrack = settingsHelper.Read("track", string.Empty);
      AudioTrack track = new AudioTrack()
      {
            Title = "Generic Title",
            Source = new Uri("isostore://"+ myTrack, UriKind.Relative)
      };
      return track;
    }
Run Code Online (Sandbox Code Playgroud)

这似乎可以很好地获取曲目名称,然后尝试创建Audiotrack进行播放.此时,应用程序将抛出以下错误.

    System.InvalidOperationException was unhandled
      _HResult=-2146233079
      _message=Operation is not valid due to the current state of the object.
      HResult=-2146233079
      Message=Operation is not valid due to the current state of the object.
      Source=Microsoft.Phone
      StackTrace:
        at Microsoft.Phone.BackgroundAudio.AudioTrack.set_Title(String value)
        at myCastsbackgroundaudio.AudioPlayer.GetNextTrack() …
Run Code Online (Sandbox Code Playgroud)

background-audio windows-phone-8

2
推荐指数
1
解决办法
1334
查看次数

在UWP中在后台播放音频的最简单方法是什么?

我正在我的Project(一个soundcloud客户端)上工作,该应用程序可以正常播放曲目,但是在最小化该应用程序时不能播放。我使用MediaElement-Object从URL播放mp3。当应用程序处于后台时,如何强制音乐继续播放音乐。或者,最简单的方法/最好的解释性教程是实现这一目标的方法。我搜寻了很多好的答案,但是我发现那些答案对我来说太好了:D意思是说,我不理解。

c# windows background-audio win-universal-app

2
推荐指数
1
解决办法
3211
查看次数

在iOS10 +中完成播放后,如何从锁定屏幕上消失播放器控件?

在后台模式下播放音频时,播放器控件会出现在锁屏上。音频停止后如何将其删除?如果尝试设置:

MPNowPlayingInfoCenter.default().nowPlayingInfo = nil
Run Code Online (Sandbox Code Playgroud)

播放器仍在锁定屏幕上,但歌手/歌手字段为空

在此处输入图片说明

UPD(我的音频会话代码):

在AppDelegate中:

func setupAudioSession() {

    let audioSession = AVAudioSession.sharedInstance()

    do {
        try audioSession.setCategory(AVAudioSessionCategoryPlayback)
        try audioSession.setActive(true)

    } catch {
        print("Setting category to AVAudioSessionCategoryPlayback failed.")
    }
}
Run Code Online (Sandbox Code Playgroud)

在播放器类中:

private func clearRemotePlayerInfo() { // call after stop button pressed
    try? AVAudioSession.sharedInstance().setActive(false)
    MPNowPlayingInfoCenter.default().nowPlayingInfo = [:]
}
Run Code Online (Sandbox Code Playgroud)

ios avaudiosession background-audio swift

2
推荐指数
1
解决办法
491
查看次数