保持其他应用程序的背景音频,react-native-video IOS

问题描述 投票:0回答:6

长期倾听者第一次来电。

到目前为止,当我导航到使用react-native-video的屏幕时,我还没有成功地从Spotify等网站获取背景音乐,以便在我的react-native应用程序中保持活力。 在 Android 上,无需进行任何更改即可运行。 我正在使用react-native(非expo),目前正在testflight上进行测试。

如果这是重复的,请告诉我,但我只找到了很多关于如何让你的应用程序在后台播放的文章(我的问题是相反的),而且我可能不只知道 IOS 用于此类控制的术语。 需要注意的是,该组件的一个实例确实包含音频,但大多数呈现的视频都没有音频。

我已经尝试过:

  1. 按照react-native-video 文档中的说明更新AppDelgate.m:

AppDelegate.m

    #import <AVFoundation/AVFoundation.h>  // import
    
     - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
      ...
      [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];  // allow
      ...
    }

  • 这似乎没有效果
  1. 使用
    ignoreSilentSwitch="ignore"
    obey
  • Obey
    成功允许背景音频继续,但将有音频的视频静音。
  • 查看源代码,ignoreSilentSwitch=obey 的作用与我添加到 AppDelegate.m 文件中的作用相同,并且如果您使用 isPaused 属性,它也会被否定。
  • 尝试了许多其他涉及音频的道具,希望能幸运。
  1. 在 xcode 中我的应用程序目标上添加了背景模式 =“音频、Airplay 和画中画”功能。

  2. 哭了一点,质疑我的人生选择。

我使用react-native-video-controls实现了react-native-video,但据我了解,它是具有附加功能的同一模块。这是实现:

<VideoContainer>
    <VideoPlayer
      source={currentVideo}
      navigator={null}
      ref={videoRef}
      resizeMode={'cover'}
      controlTimeout={1500}
      paused={isPaused}
      repeat={true}
      muted={true}
      tapAnywhereToPause={true}
      disableBack={true}
      disableTimer={true}
      disableVolume={true}
      disableFullscreen={true}
      showOnStart={true}
      hideShutterView={true}
    />
 </VideoContainer>

非常感谢任何帮助、建议、反馈或反驳!

react-native react-native-ios react-native-video
6个回答
3
投票

找到了罪魁祸首。

因此,我使用react-native-audio来播放某些定时声音,覆盖静音和非静音视频。

当您调用react-native-sound Sound.setCategory()方法时,可选的第二个参数是“mix-with-other”布尔值。 将其设置为 true 并遵循 AppDelegate.m 中的react-native-video 建议的 AVAudioSession 配置就是我所需要的。

IOS 类别(react-native-sound 中建议的播放除外): ios 声音类别

类似的问题帮助我找到了我的

有关音频的有用 IOS 文档:

这个

还有这个


2
投票

我认为有一个道具

mixWithOthers

尝试将其设置为“混合”


2
投票

添加这 3 个道具即可:

<Video
    ...
    ignoreSilentSwitch="obey"
    muted={true}
    disableFocus
/>

0
投票

对于 iOS:

正在使用

react-native-video

 您还应该添加:

    将ignoreSilentSwitch 属性设置为“忽略”

0
投票
如果您使用react-native-video,为了防止背景音乐在android上暂停,请传递以下道具

disableFocus={true} // Prevents background music from being paused


    


-1
投票
我发现您缺少启用背景音频的道具。引用文档:

后台播放 确定应用程序在后台时是否应继续播放媒体。这允许客户继续收听音频。

false(默认)- 不继续播放媒体

true - 继续播放媒体 要在 iOS 上使用此功能,您必须:

在 Xcode 项目中启用背景音频 将ignoreSilentSwitch 属性设置为“忽略” 平台:Android ExoPlayer、Android MediaPlayer、iOS

© www.soinside.com 2019 - 2024. All rights reserved.