iOS - app内播放音视频,不影响后台音乐播放

原先项目中启动页有静音视频,打开音乐的情况下,打开App,音乐就停了,类似于keep。后来产品要求:打开App,播放首页视频,如果用户已经打开了音乐等软件,这些行为依旧正常使用。

针对于这种情况有两种解决方法:

  • Solution 1:
    将视频转化成GIF,播放视频的空间改成承载GIF的ImageView。完美 ~ ~
    Mac 版本视频转GIF下载地址:我用的是这个玩意 ,站上传送门 , 另外推荐一个播放GIF动画的Git库:如果你是用cocopods管理第三方类库的话可以直接 pod, ‘FLAnimatedImage’, ‘~> 1.0’,来—》万能的传送门

但是,转出来的GIF效果 , 产品不乐意,觉得不舒服。

好 !看来这是一个有思想的产品。身为攻城狮的我只能继续想:

  • Solution 2:
    这个简单粗暴,实现代码如下:
//该行代码放在appdelegate的方法里边 : didFinishLaunchingWithOptions
     [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient withOptions:AVAudioSessionCategoryOptionMixWithOthers|AVAudioSessionCategoryOptionDefaultToSpeaker error:nil];

然后在你播放音视频的地方加上下面这行,不获取音频的权限,那就是静音播放:

    [[AVAudioSession sharedInstance] setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:nil];

一个小技巧点,记住有这个方法就行。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Uniapp是一种跨平台开发框架,可用于开发iOS、Android、华为、小程序等多种平台的应用。Uniapp支持在前端使用视频插件,实现视频播放功能,但默认情况下是不支持后台播放的。如果需要实现后台播放,可以通过以下方法解决: 1.在app.vue文件中增加onPause和onResume方法,这样当应用从前台切换到后台或者从后台切换到前台时,会自动调用这两个方法。 2.使用uni.getBackgroundAudioManager()创建音频对象,并将音频链接和标题传入。然后设置属性backgroundPlayback为true,即可使音频在后台播放。 3.在onPause方法中使用uni.hideToast()方法隐藏提示框,并使用uni.setBackgroundTextStyle()方法设置背景色,使得在手机锁屏时也能够显示音频播放器。 4.在onResume方法中使用uni.showModal()方法弹出提示框,并使用uni.setBackgroundColor()方法设置背景色,使得在应用切换到前台时可以提示用户音频正在播放。 以上就是使用Uniapp实现视频后台播放的方法,如果你对Uniapp还不熟悉,建议先了解Uniapp的基本概念和开发方法,再尝试实现视频后台播放功能。 ### 回答2: 在Uniapp中实现后台播放视频需要使用到HBuilderX中的插件:background-play。 首先,在HBuilderX中创建一个uni-app项目,并在项目根目录下,通过右键菜单选择“插件管理”导入background-play插件。 然后,在App.vue中引入background-play插件。 import backgroundPlay from '@dcloudio/background-play'; 在生命周期钩子函数中,初始化background-play插件。 created() { backgroundPlay.init(); } 接下来,在需要后台播放视频的组件中,调用backgroundPlay的start方法来播放视频。 methods: { playVideo() { backgroundPlay.start({ title: '视频标题', singer: '视频作者', coverImgUrl: '封面图片URL', src: '视频URL' }); } } 在调用start方法时,可以传入视频相关的信息,包括标题、作者、封面图片URL以及视频URL。 最后,在App.vue的onShow生命周期钩子函数中,监听音乐播放状态。 onShow() { backgroundPlay.onPlay(() => { console.log('视频开始播放'); }); backgroundPlay.onPause(() => { console.log('视频暂停'); }); backgroundPlay.onEnded(() => { console.log('视频播放结束'); }); } 通过调用onPlay、onPause和onEnded方法来监听视频的播放状态,可以根据实际需求做相应的处理。 以上就是使用background-play插件实现Uniapp视频后台播放的简单步骤。希望能对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值