无法播放从 Android 应用程序发送的 Firebase 存储中的音频

2024-04-10

我正在使用 firebase 存储从我的 Android 应用程序上传音频,然后在我的应用程序中下载和播放。 音频文件已上传,但当我从 firebase 存储播放它时,它采用如下图所示的视频格式,并且不播放音频。 我还将其元数据设置为音频/mp3。

我尝试在 firebase 文档和 google 中搜索相同内容,但无法解决我的问题。

Uri file = Uri.fromFile(new File(fileName));
 //filename is audio stored in my phone's local storage.

StorageMetadata metadata = new StorageMetadata.Builder()
            .setContentType("audio/mp3")
            .build();

// Upload the file and metadata


 UploadTask uploadTask = storageReference.child("audio/audio.mp3").putFile(file, metadata);

uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
    @Override
    public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
        double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
    }
}).addOnPausedListener(new OnPausedListener<UploadTask.TaskSnapshot>() {
    @Override
    public void onPaused(UploadTask.TaskSnapshot taskSnapshot) {
    }
}).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception exception) {
        // Handle unsuccessful uploads
    }
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
    @Override
    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
        // Handle successful uploads on complete
        // ...
        Task<Uri> uri = taskSnapshot.getStorage().getDownloadUrl();
        while(!uri.isComplete());
        Uri url = uri.getResult();

        Toast.makeText(MainActivity.this, "Upload Success, download URL " +
                url.toString(), Toast.LENGTH_LONG).show();
    }
});

Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
    @Override
    public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
        if (!task.isSuccessful()) {
            throw task.getException();
        }

        // Continue with the task to get the download URL
        return storageReference.getDownloadUrl();

    }
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
    @Override
    public void onComplete(@NonNull Task<Uri> task) {
        if (task.isSuccessful()) {
            Uri downloadUri = task.getResult();

        } else {
            // Handle failures
            // ...
        }
    }
});

我希望将音频正确保存在 firebase 存储中,然后在我的应用程序中进行流式传输。 任何帮助将不胜感激。 谢谢你!


您的问题可能是由以下原因引起的媒体记录器。我发现输出格式应该设置为AAC。然后浏览器就可以播放了。当我尝试使用 React JS 播放 Android 中 MediaRecorder 捕获的音频时,我遇到了这个问题,我尝试了各种格式(.3gp、.mp4、.wav),但这是唯一有效的格式。我怀疑还有其他人。

So:

mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法播放从 Android 应用程序发送的 Firebase 存储中的音频 的相关文章

  • 在Android中将半径边框绘制到imageview或textview的一个角落

    我需要在我的应用程序中为图像视图或文本视图绘制边框 但我只需要在一个角落绘制它 就像图像一样 我做了一个形状 但我在所有 4 个边上都有边框
  • 在Android内存中存储gif图像

    我对安卓还很陌生 我想将图像保存到内存中 然后从内存中检索图像并将其加载到图像视图中 我已使用以下代码成功将图像存储在内存中 void saveImage String fileName img cnt jpg File file new
  • Mesibo 通话 UI 未更新

    我正在尝试更改 Mesibo Call UI 的配置 但它并没有改变 我尝试如下 MesiboCallConfig mesiboCallConfig new MesiboCallConfig mesiboCallConfig backgro
  • 通过我的应用程序以编程方式插入新联系人,而不使用 Intent

    我正在使用一个应用程序 与手机联系人进行交互 我想将新联系人添加到我的手机联系人列表中 我已经尝试过以下代码 但它不起作用 void addContact Context ctx PreviewContactModel model Arra
  • Android Accessibility 执行触摸操作

    我想知道是否可以使用 Android 辅助功能服务在屏幕上的位置执行触摸操作 例如 Bundle arguments new Bundle arguments putInt coord X X value arguments putInt
  • 有没有办法替代Android中的标准Log?

    有没有办法以某种方式拦截对 android 中标准 Log 的调用并执行其他操作 在桌面 Java 中 人们通常会得到一些记录器 因此有多种方法可以安装不同的日志处理程序 实现 但是 Android似乎对Log有静态调用 我找不到任何有关替
  • 如何找到特定路线上两点之间的距离?

    我正在为我的大学开发一个 Android 应用程序 可以帮助学生跟踪大学巴士的当前位置 并为他们提供巴士到达他们的预计时间 截至目前 我获取了公交车的当前位置 通过公交车上的设备 和学生的位置 我陷入了必须找到两个 GPS 坐标之间的距离的
  • AOSP 中 android.Build.SERIAL 何时何地生成?

    我知道android Build SERIAL是在第一次设备启动时生成的 但我无法准确定位位置和时间 我正在建造AOSP Jelly Bean Android平板电脑 nosdcard 第二个问题 这个是序列号吗 really对所有人来说都
  • 当编辑文本获得焦点时更改边框颜色

    我想知道当编辑文本聚焦时如何更改它的边框颜色 目前它看起来像这样 我尝试过在SDK中检查源图片 但我无法理解它 我也尝试过使用xml 但无法仅更改边框颜色 如果我找到源图片 我可以在 Photoshop 中编辑以更改颜色 有什么关于如何执行
  • 从 Firebase Crashlytics 控制台导出数据?

    我正在试用 Firebase Crashlytics 日志数据的控制台显示很混乱 见下图 有没有办法导出完整的崩溃报告 我在 Firebase 控制台中看不到 我从未使用过原始的 Crashlytics 但我看到它有一个导出工具 Fireb
  • twitter4j => AndroidRuntime(446): java.lang.NoClassDefFoundError: twitter4j.http.AccessToken

    我正在尝试使用 twitter4j 我的应用程序来连接并发布到 Twitter 我正在关注本教程 http blog doityourselfandroid com 2011 02 13 guide to integrating twitt
  • Android 26 (O) 通知不显示操作图标 [重复]

    这个问题在这里已经有答案了 随着 Android 26 O 引入通知渠道 我一直在调查 Google 提供的com example android notificationchannels 这个示例按预期工作 直到我尝试添加Action到示
  • 使用规则保护 Firestore 数据库。检查身份验证。够了吗?

    我是 Firebase 新手 正在尝试了解数据库规则 我正在使用 Firestore 我有一个数据库 基本上需要所有用户读取 也需要写入 所有用户都可以查看数据库中的文档 并通过某些操作更改某些字段 在某些情况下 他们会删除某些旧的过期文档
  • 如何从webkit浏览器中检测Android版本和品牌?

    如何通过webkit浏览器检测Android版本和品牌 可靠吗 我相信你可以检查用户代理 但是 我认为它不安全 因为有很多方法可以用来欺骗用户代理 在谷歌上搜索这个问题给了我们很多答案 它甚至可以在默认浏览器上运行 您只需输入 about
  • Android 发布到 facebook 墙,stream.publish 几天来就中断了

    我有很多使用 FB android sdk 发布的应用程序 github com facebook facebook android sdk 我所有使用 FB 的应用程序几天后就停止工作了 这必然是 FB 方面的更改或错误 因为我的应用程序
  • Android - 正确使用 invalidateOptionsMenu()

    我一直在寻找很多invalidateOptionsMenu 我知道它的作用 但我想不出这种方法在现实生活中有用的任何例子 我的意思是 例如 假设我们要添加一个新的MenuItem to our ActionBar 我们可以简单地获取菜单on
  • 在尝试使用 GPS 之前如何检查 GPS 是否已启用

    我有以下代码 但效果不好 因为有时 GPS 需要很长时间 我该如何执行以下操作 检查GPS是否启用 如果启用了 GPS 请使用 GPS 否则请使用网络提供商 如果 GPS 时间超过 30 秒 请使用网络 我可以使用时间或 Thread sl
  • 使用 AndroidX ExifInterface 从图像中检索 GPS EXIF 数据?

    我的目标是 Android 13 并使用新的照片选择器 https developer android com training data storage shared photopicker检索图像 例如 val photoPicker
  • 如何以编程方式创建 CardView

    我正在开发一个 Android 应用程序Java Android Studio 我想在活动中创建CardView以编程方式 我想将以下属性设置为CardView layout width wrap content layout row 0
  • SQLiteDatabase.openDatabase 与 SQLiteOpenHelper.getReadableDatabase

    这两种方法有什么区别吗 两者都返回一个打开的 SQLiteDatabase 如果数据库不存在 两者都可以创建数据库 当需要读 写时 SQLiteOpenHelper 还具有 getWriteableDatabase 我应该使用哪种方法以及在

随机推荐

  • C# 4.0 中的“动态”类型有何用途?

    C 4 0 引入了一种称为 动态 的新类型 听起来不错 但是程序员会用它做什么呢 有没有什么情况可以挽救局面 The dynamic添加了关键字以及 C 4 0 的许多其他新功能 以便更轻松地与具有不同 API 的其他运行时中或来自其他运行
  • Javascript 日期加 2 周(14 天)

    我用它来获取日期 var currentTime new Date var month currentTime getMonth 1 var day currentTime getDate var year currentTime getF
  • 即使文件存在于我的 Linux 上,php file_exists 也会返回 false

    这个问题已经被问过很多次了 但我找到的答案都没有帮助我 我正在尝试让 php file exists 工作 它起作用的唯一情况是 php 文件与要使用 file exist 的文件位于同一目录中并且仅使用文件名 即不包括路径 但这不是随之而
  • 开玩笑嘲笑测试之间出血,重置并不能解决问题

    测试两个模块 helper它利用render 这是可能的render扔 所以我处理它helper 我想要进行测试以确保其按预期工作 当我最初编写测试时 我在测试本身中编写了该测试所需的内容 包括模拟 使用jest doMock 一旦所有测试
  • Android 或 Java 类命名带有 $ 符号

    我正在审查某个项目 发现有许多类具有相同的名称 但末尾带有美元 符号 数字不断增加 例如 Class java Class 1 java Class 2 java Class n java OtherClass java OtherClas
  • 简单的 TabView 在 iOS 16 中崩溃

    有一个奇怪的崩溃 只发生在 iOS 16 中 当我尝试创建一个TabView使用页面样式 当数组为空时它会崩溃 但它在 iOS 15 中运行得很好 这是 iOS 16 的错误吗 Xcode版本 版本 14 0 14A309 iOS版本 16
  • JavaScript 在点击时显示和隐藏元素

    请原谅我的无知 我不知道我在做什么 但我正在努力 我试图通过搜索来找出它 但它只在 jQuery 中产生了一个功能结果 由于这是一个很小的部分 我认为最好只使用普通的 JavaScript 而不是加载整个 jQuery 库 有谁知道我如何
  • 使用 git bash 运行 bash 脚本时出现“未找到自由命令”

    我想在 bash 脚本中显示服务器负载 磁盘空间 使用情况和内存使用情况 但当我尝试时 echo Memory usage memory usage free m awk NR 2 printf Memory Usage s sMB 2f
  • ios CoreBluetooth[警告]未知错误:1309

    运行我正在开发的蓝牙应用程序时 我偶尔会在控制台上收到消息 CoreBluetooth 警告 未知错误 1309 即使该消息指出这是警告 它也会停止应用程序的执行 我已经能够通过关闭蓝牙设置然后重新打开来解决此问题 谁能告诉我导致此问题的原
  • 如何使用实体框架自动包含所有底层导航属性

    场景 我想向数据库添加一个具有导航属性和that实体具有导航属性 等等 基本上 数据库中的表都是相互连接的 所有表都是相互连接的 我使用 EF4 3 和上下文 请求模式 所以我不想启用延迟加载 加载我需要的实体会花费太多时间 到目前为止 我
  • 我如何知道我正在使用什么 Windows 主题?

    我试图让我的应用程序强制成为一个主题 这很简单 如下所示 http arbel net blog archive 2006 11 03 Forcing WPF to use a specific Windows theme aspx htt
  • 如何完全禁用 Sitecore Analytics

    我们的生产服务器上遇到 CPU 问题 使用jetbrains cpu profiler进行分析后 我们注意到程序集中的一些函数Sitecore Analytics被处决 这有点奇怪 因为我们在配置文件中禁用了所有与分析相关的配置 调查之后
  • 如何将文章浮动在两列中?

    我有这个问题 我正在建立一个社交网站 我必须在两栏中创建帖子 父容器是一个部分 而元素 post 是具有 float left 样式的文章 我怎样才能让那些较短的帖子下面产生的空白空间消失 css目前还没有好的解决方案 这通常称为砖石布局或
  • 使用 npm 安装失败,json 响应无效

    我之前已经安装了 npm 但不知何故我不得不卸载它 现在 我尝试再次安装 npm 以使用此命令创建 React 应用程序 npx create react app ip tracker 安装到一半的时候发现这个错误 npm ERR code
  • 使用命令行查找 Windows 上给定日期之后修改的文件

    我需要使用命令行搜索磁盘上在给定日期之后修改的文件 例如 dir S B WHERE modified date gt 12 07 2013 The forfiles该命令无需借助 PowerShell 即可运行 文章在这里 根据修改时间查
  • 在 Java 中创建 InetAddress 对象

    我正在尝试转换由 IP 号码或名称指定的地址 两者都是字符串 即localhost or 127 0 0 1 转化为Inet地址目的 没有构造函数 而是返回一个静态方法Inet地址 因此 如果我获得主机名 这不是问题 但如果我获得 IP 号
  • 无法导入copy_reg

    我在 PythonAnyware 上托管我的 Web2py 应用程序 并且在导入 web2py 显然需要的 copy reg 时遇到问题 在以前的版本中这不是问题 回溯如下 回溯 最近一次调用最后一次 File home richdijk
  • 为什么我不能在 C++ 中的 `std::map` 中存储引用?

    我知道引用不是指针 而是对象的别名 但是 我仍然不明白这对我作为程序员到底意味着什么 即幕后的引用是什么 我认为理解这一点的最好方法是理解为什么我无法在地图中存储参考 我知道我需要停止将引用视为指针的语法糖 只是不知道如何 按照我的理解 引
  • 反序列化函数(字节数组到 uint32 )

    编写反序列化函数将字节数组转换为 32 位无符号整数的最佳方法是什么 typedef unsigned long uint32 uint32 deserialize uint32 unsigned char buffer uint32 va
  • 无法播放从 Android 应用程序发送的 Firebase 存储中的音频

    我正在使用 firebase 存储从我的 Android 应用程序上传音频 然后在我的应用程序中下载和播放 音频文件已上传 但当我从 firebase 存储播放它时 它采用如下图所示的视频格式 并且不播放音频 我还将其元数据设置为音频 mp