【开发日记】微信小程序getBackgroundAudioManager播放背景音乐提示播放失败

小程序背景音乐及音频播放demo(copy直接使用~) 从微信客户端6.7.2版本开始,若需要在小程序切后台后继续播放音频,需要在 app.json 中配置 requiredBackgroundModes 属性。开发版和体验版上可以直接生效,正式版还需通过审核。获取全局唯一的背景音频管理器。小程序切入后台,如果音频处于播放状态,可以继续播放。但是后台状态不能通过调用API操纵音频的播放状态。2、onUnload和onHide事件中暂停音乐的播放。4、在播放结束的事件中,再次播放,以达到循环播放的效果。3、onShow中调用播放事件。 阅读详情

【问题】

小程序在手机上打开,播放在线音频的时候会提示播放失败,但打印异常提示的是src为null,自己在打印的时候却没问题。
并且在微信开发者工具中播放的时候也是正常的,只有手机上打开使用时提示异常。

【解决】

如果你的链接中包含中文字符,请使用encodeURI(src)进行编码处理。

示例代码如下:

let src=this.data.host + this.data.previewUrl + this.data.info.musicUrl;
if(wx.$globalData.backgroundAudioManager.src != src){
  wx.$globalData.backgroundAudioManager.src = encodeURI(src);
  wx.$globalData.backgroundAudioManager.title = this.data.info.name;
  wx.$globalData.backgroundAudioManager.epname  = this.data.info.name;
  wx.$globalData.backgroundAudioManager.coverImgUrl =this.data.info.cover;
  wx.$globalData.backgroundAudioManager.singer = this.data.info.singer;
}
微信小程序API 背景音频播放管理 wx.getBackgroundAudioManager() 1、官方文档及注意事项 官方文档 退出当前页面或者小程序,背景音乐继续播放 与pages同级: "requiredBackgroundModes": ["audio"] 2、BackgroundAudioManager 实例,可通过 wx.getBackgroundAudioManager 获取。 // pages/test/test.js const backgroundAudioManag... 阅读详情

相关推荐

微信小程序中音频播放

wx.getBackgroundAudioManager()这个api返回的是一个对象(BackgroundAudioManager),同时需要注意 背景音频播放是获取的 全局唯一的背景音频管理器,也就是说,你不销毁或者停止,他会一直播放(离开微信和配置了后台播放除外)BackgroundAudioManager在这个对象上有一些方法,比如:暂停,设置地址,监听播放状态(播放,停止,暂停,错误。具体代码如下(此处是封装为播放组件,可直接复制)1.获取全局唯一的背景音频管理器。如何在小程序中实现音频播放。

2401_82373036的博客 1705

微信小程序wx.getBackgroundAudioManager()背景音频播放

显现的功能: 开始播放、暂停播放、停止播放、进度条显示(没有做拖拽进度条) 效果 播放状态是个动图(图是网上随便找的,如侵删) 暂停状态是静态图片: app.json设置 首先要在app.json里设置: "requiredBackgroundModes":["audio","backgroundAudioManager"] 目的是使播放器可以息屏播放。 wxml页面显示设置 <view class="spotAudio"> <image src="https://

林啾啾的博客 6627

微信小程序播放音频无声音的解决方案 getBackgroundAudioManager

获取全局背景音乐管理器: const backgroundAudioManager = Taro.getBackgroundAudioManager(); 在全局配置文件中app.config.ts配置 requiredBackgroundModes 属性: requiredBackgroundModes: ['audio'], 配置backgroundAudioManager属性: const setSongInfo = (songInfo) => { const { name, ar,

weixin_41973410的博客 6690

微信小程序简易音频播放器(wx.getBackgroundAudioManager())

微信小程序简易音频播放器(wx.getBackgroundAudioManager())

caip12999203000的博客 1623

微信小程序背景音乐开发详解

wx.getBackgroundAudioManager()  推荐大家使用背景音乐不在使用audio audio播放音频加载时间长 体验需求达不到 相关文档 https://developers.weixin.qq.com/miniprogram/dev/api/media/background-audio/BackgroundAudioManager.html 相关代码 const bgMusic = wx.getBackgroundAudioManager() //创建背景音乐 Page({ data: { id: '',//请求数据参数id musicMsg: {},//

74HC138译码器的原理和使用

A0,A1,A2为3位二进制加权地址输入端口,A2A1A0顺序组成的3位2进制数对应的十进制数x控制使能端口Yx';例如当A2A1A0 = 101 时,其他门输出端全为高电平,只有Y5'为低电平。 Y0-Y7为8个输出端口,其输出电平由A0,A2,A3,E1,E2,E3决定。

diksan的博客 6万+

小程序之背景音乐—wx.getBackgroundAudioManager播放音频

wxml <view class='container'> <view class='learn-tit'> <view class='answer-name'> <view>{{courseName}}</view> <view>{{courseSubName}}</...

Black_Eva的博客 2370

带硬约束的物理信息神经网络(PINN with Hard Constraint)示例及代码

本文以一个案例介绍了带硬约束的物理信息神经网络的原理及实现步骤。

m0_72768523的博客 5356

微信小程序音频后台播放功能

在播放过程中,如果用户将手机屏幕锁定或者切换到其他应用程序,音乐播放器会自动转为后台播放状态。以上代码仅为示例,具体实现方式可能根据你的需求有所差异。你可以根据自己的实际情况进行调整和完善。如果需要在后台播放音频时显示通知栏信息、响应用户的操作等功能,还需要在小程序的。方法创建后台音乐播放器,并将音乐播放任务交给这个后台播放器。,表示需要在后台播放音频时在通知栏显示音乐播放的信息。微信小程序在手机息屏后依旧能播放音频,需要使用。属性为音频文件的地址,并调用。方法创建后台音乐播放器实例。

m0_73481765的博客 6032

RK3588上跑通Zipformer语音识别的3个坑与填坑实录(附完整编译命令)

本文详细记录了在RK3588开发板上部署Zipformer语音识别模型时遇到的三个典型问题及其解决方案,包括静态库版本冲突、编译脚本配置错误以及模型转换精度调优。文章提供了完整的编译命令和实战步骤,帮助开发者快速在边缘设备上实现高效的语音识别应用。

l6m7n8的博客 713

超过4.2万个AOI(地理围栏),深圳市2025年2月15日更新的全类别AOI,矢量图层(全国22个超大特大城市AOI更新系列)

超过4.2万个AOI(地理围栏),深圳市2025年2月15日更新的全类别AOI,矢量图层(全国22个超大特大城市AOI更新系列)

1069

微信小程序播放背景音乐

从微信客户端6.7.2版本开始,若需要在小程序切后台后继续播放音频,需要在 app.json 中配置 requiredBackgroundModes 属性。开发版和体验版上可以直接生效,正式版还需通过审核。获取全局唯一的背景音频管理器。小程序切入后台,如果音频处于播放状态,可以继续播放。但是后台状态不能通过调用API操纵音频的播放状态。2、onUnload和onHide事件中暂停音乐的播放。4、在播放结束的事件中,再次播放,以达到循环播放的效果。3、onShow中调用播放事件。

aaa123aaasqw的博客 2197

常见卫星图源下载教程

上面列出的8个常见的亚米级别数据源都可以通过xyz协议或者wmts/wms协议进行下载。这些协议是什么?地理信息数据为了方便网络传输,制定了一系列的地理数据传输标准(wms/wmts/xyz等)。协议特点优点缺点栅格数据支持矢量数据支持WMS通过HTTP请求获取GIS数据,服务器会将数据渲染成图像高度定制的地图;交互性强服务器渲染图像,响应时间较长支持有限支持WMTS提供预渲染的地图瓦片速度快,因为地图瓦片可以预先生成并在请求时快速提供瓦片的内容是预先确定的,无法进行定制支持。

锐多宝的地理空间 1万+

微信小程序创建BackgroundAudioManager实例,播放背景音频

我们页面加载生命周期中时,创建背景音频的实例对象,并挂在this上,这个时候再去创建这个实例上的【监视音乐播放/暂停/停止】方法,通过这个区修改【isPlay】值,控制播放暂停,无论是页面我们自己设置的按钮,或者是通知栏上的按钮都可以。

weixin_49931650的博客 1959

在Simulink中实现基于深度强化学习的控制算法仿真建模

通过上述步骤,你可以在Simulink中实现基于深度强化学习的控制算法仿真建模。这种方法适用于许多复杂的控制问题,尤其是当传统控制方法难以找到有效解决方案时。随着经验的积累,你可以进一步探索不同的深度强化学习算法及其变种,以适应更广泛的应用场景。此外,还可以结合其他先进技术(如迁移学习、多智能体协作等),提升模型的表现能力。

amy_mhd的博客 414

华为OD机试 - 末世分配资源包 - 二分查找 + 贪心(Python/JS/C/C++ 新系统 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。末世时代,政府为各地方配资源,现有资源分配表 nums[n],要求按如下规则分配给 k 个营地:在最优平均分配情况下,得到最大团队所获得的资源数4,3,6,9,7 216最佳划分之一:[4,3,6] -> 13 [9,7] -> 16最大

学Java,找哪吒 223

小程序 背景音乐wx.getBackgroundAudioManager()的使用

首先在点击事件中创建一个实例 wx.getBackgroundAudioManager()的返回值是BackgroundAudioManager它有开始暂停等很多方法,直接.即可 playMusic(){ const music = wx.getBackgroundAudioManager() if(!this.data.isPlay){ music.src = thi...

czc13026391650的博客 2614

PCL 法向量夹角剔除错误匹配点对【2026最新版】

实现了一种简单的基于对应点法线角度的对应关系去除方法。博客长期更新,本文最新更新时间为:2026年5月24日。

点云侠的博客 41万+

微信小程序使用wx.getBackgroundAudioManager()写音频播放,ios和安卓真机测试,暂停再播放结果从头播的bug【已解决】

话不多说,遇到的坑解决办法如下: 解决暂停再播放不能从头播的问题。(准备好更新进度、获取单个课程播放进度的接口) 1.当音频暂停、进度条拖动(音频暂停状态)、快进快退(音频暂停状态)、页面卸载时调用更新接口; 2.再次播放时调用获取接口; 3.微信小程序的BackgroundAudioManager.currentTime并不能获取到上次暂停时的时间,这时候需要我们用seek()方法跳转到获取接...

qq_43119205的博客 1万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

小程序之背景音乐—wx.backgroundAudioManager

onMusicTap:function(){ const backgroundAudioManager = wx.getBackgroundAudioManager() backgroundAudioManager.title = '此时此刻'; backgroundAudioManager.epname = '此时此刻'; backgroundAu...

波~的博客 6563

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【解决】微信小程序wx.getBackgroundAudioManager()写音频播放时,暂停后再播放又从头开始了

最近写小程序时涉及到音频播放,自然是少不了getBackgroundAudioManager(),也为用户提供方便,可以通过系统的暂停/播放来同步控制小程序的音频的暂停/播放。 那么在使用的时候,我暂停了,调用了pause(),播放时我错在了直接给设置了歌曲的链接。 核心点在:判断当前的歌曲链接是不是被暂停的歌曲的链接,不是原来的歌就重新赋予链接地址,否则也就是原来的歌,那就不赋予链接地址而是调用play()方法。 ...

昔冰_G的博客 2955

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

python没有pygame_教程丨python 做一个简单的MP3

↑关注 + 星标,每天学Python新技能后台回复【大礼包】送你Python自学大礼来源丨速学Pythonhttps://mp.weixin.qq.com/s/C9doSoz0uHn2VAApBuGsNg本节将教大家如何做一个简单的mp3,希望大家能有所收获,写的不足之处望大家谅解。废话少说,直接上代码:#!/usr/bin/env python# -*- coding: utf-8...

weixin_39657825的博客 356

音频播放 ios 和 安卓的兼容 wx.getBackgroundAudioManager()

由于公司小程序 ‘蜗牛亲子英语’ 涉及到音频播放这一块,写的时候 遇到很多坑, 所以在这里总结一下, 希望能够为 同样在写音频播放这一块的 童鞋解解惑 自行查看 微信官方相关API wx.playBackgroundAudio 这个API官方已经不做更新了,所以你就不用继续研究这个了,可以使用最新功能更强横的 wx.getBackgroundAudioManager() let Backgrou...

qq_37449852的博客 2030

小程序音频播放 wx.createInnerAudioContext() wx.getBackgroundAudioManager() 踩坑记

这些坑主要集中在ios平台 wx.createInnerAudioContext() wx.getBackgroundAudioManager() 通病 1.音频链接中不能存在中文,而且使用encodeURIComponent()编码也不能识别 必须要包含 https://xxx.xxx.xxx/ 所以 切掉前半部分 后面的就可以使用encodeURIComponent()编码了 我的是这样处理的 audio = 'https://xxx.xxx.xxx/audio/2020/07/05/07

weixin_41645458的博客 1555
上一篇: 【开发日记】Docker修改国内镜像源
下一篇: 【开发日记】Uniapp对指定DOM元素截长图
二饭
博客等级 码龄7年 1806粉丝 152原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值