D_TsMask
D_TsMask
  • 发布:2020-10-11 09:51
  • 更新:2023-03-13 14:20
  • 阅读:4498

plus 解决uni-app播放多音频背景音乐

分类:Native.js

plus 解决uni-app播放多音频背景音乐

播放音频文件

  
let audioPlayer = null;  
  
// #ifdef APP-PLUS  
// 背景音乐文件  
let path = plus.io.convertLocalFileSystemURL("_www/static/audio/background_music.mp3");  
if (plus.os.name == 'Android') {  
    let MediaPlayer = plus.android.importClass("android.media.MediaPlayer");  
    audioPlayer = new MediaPlayer()  
    audioPlayer.setDataSource(path); //指定音频文件路径  
    audioPlayer.setLooping(true); //设置为循环播放  
    audioPlayer.prepare(); //初始化播放器MediaPlayer  
    audioPlayer.start();  
    // 获取音乐的总时长  
    console.log(audioPlayer.getDuration());  
}  
if (plus.os.name == "iOS") {  
    let NSData = plus.ios.importClass("NSData");  
    let AVAudioPlayer = plus.ios.importClass("AVAudioPlayer");  
    let pathFileData = NSData.dataWithContentsOfFile(path);  
    audioPlayer = new AVAudioPlayer();  
    audioPlayer.initWithDataerror(pathFileData, null);  
    audioPlayer.setNumberOfLoops(-1); //-1:无限循环   
    audioPlayer.prepareToPlay(); //初始化播放器  
    audioPlayer.play();  
    // 获取音乐的总时长  
    console.log(audioPlayer.duration());  
}  
// #endif

调节系统媒体音量

  
let AudioManager = null;  
let audioManager = null;  
  
/// 获取系统音量控制  
// #ifdef APP-PLUS  
if (plus.os.name == 'Android') {  
    let context = plus.android.importClass("android.content.Context");  
    let main = plus.android.runtimeMainActivity();  
    AudioManager = plus.android.importClass("android.media.AudioManager");  
    audioManager = main.getSystemService(context.AUDIO_SERVICE);  
    // 调节是否显示调节ui  
    // audioManager.adjustStreamVolume (AudioManager.STREAM_MUSIC , AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI)  
    // 音量最大范围  
    let max = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);  
    // 当前音量值  
    let current = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);  
    console.log(max, current);  
}  
if (plus.os.name == "iOS") {  
    // 暂无查找  
}  
// #endif  
  
// 设置音量值  
// #ifdef APP-PLUS  
if (plus.os.name == 'Android') {  
    audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 89, 0); // 89为音量值  
}  
if (plus.os.name == "iOS") {  
    // 暂无查找  
}  
// #endif  

3 关注 分享
1***@qq.com 我不是大v 3***@qq.com

要回复文章请先登录注册

T泰达T

T泰达T

ios下闪退,请问要怎么查问题啊
2023-03-13 14:20
hnrtwh

hnrtwh

还有一个办法,使用一个video来播放音频,并设置样式把video移出屏幕外,
<video
style="position: fixed;top: -100vh;left: -200vw;"
id="myVideo"
src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3"
@error="videoErrorCallback"
enable-danmu
danmu-btn
controls
></video>
这样就能和uni.createInnerAudioContext 一起使用了
2021-08-24 16:27
1***@qq.com

1***@qq.com

很棒,解决了我的问题,为你点赞
2021-04-27 15:08
树下的老大爷

树下的老大爷

···
let path = plus.io.convertLocalFileSystemURL("/static/media/new_home.mp3");
if (plus.os.name == 'Android') {
console.log('播放')
this.soundObj = plus.audio.createPlayer( path );
this.soundObj.setSessionCategory("ambient");
this.soundObj.setStyles({
autoplay:true,
loop:true,
})
this.soundObj.setRoute( plus.audio.ROUTE_SPEAKER );
this.soundObj.play(); //播放

// sound.stop(); //停止
}

···

//setSessionCategory取值:

//"ambient" - 不中止其他声音播放,不能后台播放,静音后无声音;

//"soloAmbient" - 中止其他声音播放,不能后台播放,静音后无声音;

//"playback" - 中止其他声音,可以后台播放,静音后有声音。 默认值为"playback"。

app端不要用uni的音乐播放了 全用上面这个
2021-04-09 17:28
8***@qq.com

8***@qq.com

你好,请问这个怎么设置不影响其他的声音
2020-11-03 13:39