wechat-miniprogram/minigame-unity-webgl-transform

AudioSource的time及timeSamples的设置是无效的!

gzz100 opened this issue · 5 comments

描述Bug

首先下载音乐的assetbundle然后播放:
_musicAudioSource.timeSamples = 6 * 22050;
_musicAudioSource.Play();
或者
_musicAudioSource.time = 6f;
_musicAudioSource.Play();
音乐还是从头开始播放

运行环境

Windows10/2021.3.33f1

不用ab也是一样 都不生效,附上测试代码:

using UnityEngine;

public class test : MonoBehaviour
{
    private AudioSource _musicAudioSource;
    public AudioClip testClip = null;
    // Start is called before the first frame update
    void Start()
    {
        //init();
        _musicAudioSource = base.gameObject.AddComponent<AudioSource>();
        _musicAudioSource.clip = null;
        _musicAudioSource.loop = false;
        _musicAudioSource.volume = 1.0f;
        _musicAudioSource.playOnAwake = false;
    }

    void PlayTest()
    {
        _musicAudioSource.clip = testClip;
        _musicAudioSource.timeSamples = 6 * 22050;
        _musicAudioSource.Play();

    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonUp(0))
        {
            PlayTest();
            //StartCoroutine(PlayBGMAysnc("Palace"));
        }
    }
}

你的测试代码我在本地跑了一下 AudioSource如果在未播放状态下设置timeSamples是生效的,否则会默认从头播放。
在设置timeSamples前先停止播放当前Audio问题会修复:
void PlayTest()
{
AudioSource.clip = testClip;
AudioSource.Stop();
AudioSource.timeSamples = 6 * 22050;
AudioSource.Play();
Debug.Log("timeSamples: " + AudioSource.timeSamples);
}

你的测试代码我在本地跑了一下 AudioSource如果在未播放状态下设置timeSamples是生效的,否则会默认从头播放。 在设置timeSamples前先停止播放当前Audio问题会修复: void PlayTest() { AudioSource.clip = testClip; AudioSource.Stop(); AudioSource.timeSamples = 6 * 22050; AudioSource.Play(); Debug.Log("timeSamples: " + AudioSource.timeSamples); }

不行啊 我试过了 加了stop也是从头开始。 webgl和pc的没问题,就是打包后的微信有这个问题,Unity 2021.3.33f1 插件版本:202407090855

这边试了一下确实有问题,我们下个插件版本修复一下

Quote reply

2024-8-13的版本 开发工具里已经没问题,但是上真机微信体验版还是从头开始播放 麻烦看下是不是没有完全修复?