• 欢迎访问3y4.net
  • 请使用Edge、Chrome或Firefox测试显示内容。

Delphi FMX安卓Android播放mp3音频内存流

其它 wes 2年前 (2023-03-06) 1348次浏览

        Delphi FMX跨平台的MediaPlayer无法播放音频数据流只能打开音频文件播放,但有时候需要直接播放内存流数据而无需生成文件,可以通过把内存流转ByteArray再通过Android平台系统原生的MediaDataSource或ParcelFileDescriptor 加载播放流音频数据;用java编译打包添加到库即可。

    public ParcelFileDescriptor getParcelFileDescriptor() throws IOException {
        ParcelFileDescriptor[] pipe = ParcelFileDescriptor.createPipe();

        InputStream inputStream = new ByteArrayInputStream(d);
        OutputStream outputStream = new ParcelFileDescriptor.AutoCloseOutputStream(pipe[1]);
        int len;
        while ((len = inputStream.read()) >= 0) {
            outputStream.write(len);
        }
        inputStream.close();
        outputStream.flush();
        outputStream.close();
        return pipe[0];
    }


转载3y4.net请注明 --> 原文链接
喜欢 (2)