当前位置: 首页 > 知识库问答 >
问题:

如何播放不在url或存储中的音频文件的InputStream?

宋建本
2023-03-14

我已经成功地上传了一个音频文件(3GP)到谷歌驱动器。

现在我希望能够在应用程序中播放该文件。

Google Drive API只允许获取存储在那里的文件的输入流。

在我的情况下,输入的所有MediaPlayer功能都不可用,这只是InputSteam:

我知道我可以将文件从谷歌驱动器保存到缓存中并播放它,但我想避免存储处理,并在飞行中播放文件。

我试图搜索这个问题,只发现可能使用AudioTrack(在这里)。也可以使用新的果冻bean特性(如图所示,可以从这里找到),但我不确定,因为这是相当低的级别。

可悲的是,使用AudioTrack我得到了错误的声音正在播放(噪音)。

共有1个答案

申屠裕
2023-03-14

如果minsdkversion为23或更高,则可以使用setDataSource(MediaDataSource)并提供abstractMediaDataSource类的子类。

对于较旧的设备,您应该能够使用从ParcelFileDescriptor创建的管道。您将有一个线程将数据写入管道的末端,并将播放器末端的FileDescriptor(从GetFileDescriptor())传递到SetDataSource(FileDescriptor)

 类似资料:
  • 我对javascript和discord.js很陌生,有人知道如何让机器人加入一个频道,播放一个文件然后离开吗? 以下是我尝试过的: 现在,它将发送消息加入语音通道,而不管我是否在其中,如果我在其中,它就不会加入语音通道并播放文件。任何帮助都很感激。

  • 问题内容: 我不了解pyaudio的示例材料。看来他们写了整个小程序,这让我失望了。 如何只播放一个音频文件? 格式不是问题,我只想知道播放音频文件所需的最少代码。 问题答案: 这个例子对我来说似乎很清楚。您只需将示例另存为playwav.py调用即可: 带有一些额外注释的wave示例:

  • 我有一个网页,提供通过手机动态下载mp3文件。我想添加一个功能,在下载文件之前,有人可以通过他们的台式机来收听这首歌。 我需要做什么?

  • 问题内容: 我收到mp3网址作为api调用的响应。我想播放该音频,那么我该怎么做?(iOS迅速) 这是我的回应 这是我的代码:: 我要去哪里错了? 问题答案: 我尝试了以下方法 添加以下方法, 和您的播放方法一样, 下载mp3文件,然后尝试播放,但AVAudioPlayer无法以某种方式为您下载mp3文件。我可以下载音频文件,然后播放器播放它。 请记住,将其添加到info.plist中,因为您是从