【Android audio】 Tinyalsa and tinyplay sequence

12 篇文章 4 订阅 ¥199.90 ¥299.90
本文详细分析了Android音频播放过程中Tinyalsa库的tinyplay.c文件,主要内容包括main()函数的参数解析、play_sample()的流程,如pcm_open()的设备打开、ioctl设置硬件和软件参数,以及在pcm_write()中如何准备并写入音频帧。通过ioctl调用来控制音频设备的交互,实现音频播放功能。
摘要由CSDN通过智能技术生成

在这里插入图片描述
详细代码分析:

external/tinyalsa/tinyplay.c
main()

  • 参数解析
  • play_sample()
    • pcm_open()
      | + snprintf(fn, sizeof(fn), “/dev/snd/pcmC%uD%u%c”, card, device,
      | | flags & PCM_IN ? ‘c’ : ‘p’);
      | + pcm->fd = open(fn, O_RDWR|O_NONBLOCK); // 打开/dev/snd…设备
      | |
      | + ioctl(pcm->fd, SNDRV_PCM_IOCTL_HW_PARAMS, &params)
      | + ioctl(pcm->fd, SNDRV_PCM_IOCTL_SW_PARAMS, &sparams)
      |
    • do { pcm_write() } while()
      | + // pcm_write()
      | + if (!pcm->running) {
      | | pcm_prepare(pcm); // ioctl(pcm->fd, SNDRV_PCM_IOCTL_PREPARE)
      | | ioctl(pcm->fd, SNDRV_PCM_IOCTL_WRITEI_FRAMES, &x)
      | | return 0;
      | | }
      | |
      | + // 通过ioctl写数据
      • ioctl(pcm->fd, SNDRV_PCM_IOCTL_WRITEI_FRAMES, &x)
  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Android Studio 本身并不提供 Sequence Diagram 的功能,但是可以通过使用一些第三方插件来实现。下面是一个基本的使用教程: 1. 安装 PlantUML 插件:在 Android Studio 中,点击 "File" -> "Settings" 打开设置面板。在左侧面板中选择 "Plugins",然后在右侧搜索栏中搜索 "PlantUML"。点击 "Browse repositories" 按钮,在搜索结果中找到 "PlantUML integration" 插件并点击安装。 2. 创建新的 PlantUML 文件:在 Android Studio 中,右键点击你想要创建 Sequence Diagram 的包或者类,在弹出的菜单中选择 "New" -> "PlantUML" -> "PlantUML File"。输入文件名并点击 "OK"。 3. 编写 Sequence Diagram 代码:在打开的 PlantUML 文件中,你可以使用 PlantUML 的语法编写 Sequence Diagram。例如,下面是一个简单的示例: ``` @startuml participant User participant System User -> System: 请求数据 System -> System: 处理请求 System --> User: 返回数据 @enduml ``` 4. 在 Android Studio 中预览 Sequence Diagram:在 PlantUML 文件中右键点击,选择 "Preview PlantUML Diagram" 可以在 Android Studio 中预览生成的 Sequence Diagram。 5. 导出 Sequence Diagram:如果你想导出 Sequence Diagram 为图片或者其他格式,可以在 PlantUML 文件中右键点击,选择 "Export PlantUML Diagram" 并按照提示进行导出。 希望这个简单的教程能够帮助你开始使用 Sequence Diagram 在 Android Studio 中进行建模和分析。如果你想了解更多关于 PlantUML 的用法和语法,请参考官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

macheria

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值