问题是由于iOS设备在尝试通过HTTP请求播放WAV文件时,会发出范围请求(Range request),但AWS S3不支持范围请求,因此会导致无法播放。
要解决这个问题,可以使用AWS S3 TransferManager将WAV文件下载到本地,然后使用AVAudioPlayer在iOS设备上进行播放。代码示例如下:
// 初始化S3客户端 AmazonS3 s3 = new AmazonS3Client(credentials);
// 创建TransferManager对象 TransferManager transferManager = new TransferManager(s3);
// 创建下载请求 GetObjectRequest request = new GetObjectRequest(bucket, key);
// 下载文件 transferManager.download(request, new File(localPath));
// 初始化AVAudioPlayer AVAudioPlayer audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:localPath] error:nil];
// 播放音频 [audioPlayer play];