gpt4 book ai didi

php - HTML5音频是静态文件时在iOS中显示 “live broadcast”

转载 作者:行者123 更新时间:2023-12-02 22:48:25 24 4
gpt4 key购买 nike

对于Windows Chrome(可能还有许多其他浏览器),此代码适用于在audio元素中提供mp3:

/**
*
* @param string $filename
* @return \Illuminate\Http\Response|\Illuminate\Contracts\Routing\ResponseFactory
*/
public function getMp3($filename) {
$fileContents = Storage::disk(\App\Helpers\CoachingCallsHelper::DISK)->get($filename);
$fileSize = Storage::disk(\App\Helpers\CoachingCallsHelper::DISK)->size($filename);
$shortlen = $fileSize - 1;
$headers = [
'Accept-Ranges' => 'bytes',
'Content-Range' => 'bytes 0-' . $shortlen . '/' . $fileSize,
'Content-Type' => "audio/mpeg"
];
Log::debug('$headers=' . json_encode($headers));
$response = response($fileContents, 200, $headers);
return $response;
}

但是,当我使用iPhone浏览到同一页面时,mp3文件不会显示总持续时间,而在播放时,它会显示“实时广播”。

我尝试遵循该问题的各种答案( HTML5 <audio> Safari live broadcast vs not)以及我已阅读的其他文章的建议,但似乎没有效果。

无论我如何更改标题,mp3似乎都能在Windows上正常运行,而在iOS上则无法正常工作。

如何调试我做错了什么?

这是HTML:
<audio controls preload="auto">
<source src="{{$coachingCall->getMp3Url()}}" type="audio/mpeg"/>
<p>Your browser doesnt support embedded HTML5 audio. Here is a <a href="{{$coachingCall->getMp3Url()}}">link to the audio</a> instead.</p>
</audio>

最佳答案

MP3文件没有时间戳,因此没有可以提前知道的固有长度。 Chrome只是根据文件开头的比特率和文件的字节大小来猜测。它不是真的知道。

有些玩家不介意猜测。

另外,由于苹果公司采取了一些令人难以置信的限制性政策,因此iOS上的所有浏览器都是Safari。因此,iOS上的Chrome实际上只是Safari Web View 的包装。

关于php - HTML5音频是静态文件时在iOS中显示 “live broadcast”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54738875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com