Glib(1)

GLib

1.1 Introduction

在开源世界中,G中很常见的。 它代表了GNU ("GNU's Not Unix")。 像GTK+,GLib,GObject,以及GNOME,还有一些其它的软件包,如Ghostscript和gcc中都充满了G。

为了理解后面的章节,你必须学习一些GLib的基础知识(libglib-2.0)。它为GTK+和GNOME程序提供了基础的数据结构和实用函 数。在本章中将会涉及到GLib的结构和API的介绍。 你将会在第二章中学习GLib's object system(GObject)。

在你使用GNOME和GTK+的时候,会不可避免的使用GLib。 其它的一些库,如ORBit除了GLib并没有引用其它的库。 GLib所提供的abstractions(这个不知道应该译成什么)和实用工具编程程序提供了方便, 而且很容易移植到其它平台。

在本章中并没有包含图形操作代码,它只是一个简单的,逐步讲述了GLib的函数和数据结构。 可能读起来有点枯燥,不过你也可以直接跳到第三章去阅读GTK+的内容。 但是你会经常的返回来查看这前两章的内容。

1.2 GLib Naming Coventions (GLib命名规则)

就像许多其它的库一下,GLib也为了一致性和易读性规范了命名规则。

函数的名字一般都是小写的,并且在每部分名字之间加下划线, 如g_timer_new(),g_list_append()。并且所有的函数名字都是以g_开头。

在GLib中,所有的函数都有前缀g_。

类型名并不包含下划线,并且GLib里面的所有类型组件都是以大写字母G开头的,如GTimer,GList。但GLib中的基本类型是值得注意的例外。在第三节中将会有介绍。

如果某个函数主要是操作某个特定的类型的话,这个函数的前缀就与相应的类型相匹配。例如,g_timer_*就是操作GTimer类型。 g_list_*就是操作GList类型。

这些规则听起来比实际要复杂。

 

1.3 Basic Types ( 基本类型 )

在开始使用 GLib 之前,你首先要适应 GLib 的基本类型。 你或许很想知道为什么使用 guchar 要比使用 unsigned char 好。 如果你的程序一直待在同一个平台上执行,那么使用 guchar 与使用 unsigned char 并没有实质的差别。 但是,如果你想编写出在不同平台之间移植的程序,如 WindowsUnix 之间。 那你会很感谢 GLib 将基本类型给你抽象出来了。

例如,你想在所有可能的平台上定义 16 位的无符号整型,使用 C 语言的话可能看起来很麻烦。但幸运的是 GLib 帮你处理了这些。 所有的基本类型在下面的表格中列出。

要使用 GLib 和它的类型,必须要在源码中包含 glib.h

#include <glib.h>

gpointergconstpointer 类型在 GLib 的数据结构中经常出现,这两个是无类型的内存指针。在 GLib 中,函数负责检查这两个指针的类型,程序员和编译器并不管这些。这在回调函数以及排序和遍历中比较的时候尤其方便。

GLib 的头文件中为 gboolean 类型定义了 TRUEFALSE 常量。 在使用这些常量的时候,不要使用比较运算符。 例如要用: if (my_gboolean) ,而不是: if (my_gboolean == TRUE)


GLib Type

Corresponding Type in C

gchar

char

ugchar

unsigned char

gint

int

guint

unsigned int

gshort

short

gushort

unsigned short

glong

long

gulong

unsigned long

gfloat

float

gdouble

double

gint8

int, 8 bits wide

guint8

unsigned int, 8 bits wide

gint16

int, 16 bits wide

guint16

unsigned int, 16 bits wide

gint32

int, 32 bits wide

guint32

unsigned int, 32 bits wide

gint64

int, 64 bits wide

guint64

unsigned int, 64 bits wide

gpointer

void *, untyped pointer

gconstpointer

const void *, constant untyped pointer

gboolean

Boolean value, either TRUE or FALSE

CPU 信息 : hisilicon,hi3798mv300@4核处理器 | aarch64架构 系统版本 : Ubuntu 20.04.6 LTS | V20250201-4.4.35_ecoo_83032968-64 可用存储 : 61.6% 4119.0M 可用内存 : 68.5% 1275.0M | 交换区:nan% 0.0M 警告,您的系统似乎出现问题,强烈建议重置 recoverbackup ! 启动时间 : 2 天 23 小时 58 分钟 52 秒 IP 地址 : 192.168.68.142 设备温度 : 57°C MAC 地址 : 00:11:22:33:44:55 设备识别码:25a8164713804c48599885640e2d8ff9 root@hi3798mv300:~# # 在海纳思系统安装必备工具 root@hi3798mv300:~# sudo apt install cec-utils pulseaudio avahi-daemon Reading package lists... Done Building dependency tree Reading state information... Done avahi-daemon is already the newest version (0.7-4ubuntu7.3). avahi-daemon set to manually installed. The following additional packages will be installed: gstreamer1.0-plugins-base libasound2-plugins libasyncns0 libcairo2 libcdparanoia0 libcec4 libflac8 libgomp1 libgstreamer-plugins-base1.0-0 libice6 libjack-jackd2-0 libjson-glib-1.0-0 libjson-glib-1.0-common libopus0 liborc-0.4-0 libp8-platform2 libpixman-1-0 libpulse0 libpulsedsp libsamplerate0 libsm6 libsnapd-glib1 libsndfile1 libsoxr0 libspeexdsp1 libtheora0 libvisual-0.4-0 libvorbisenc2 libwebrtc-audio-processing1 libx11-xcb1 libxcb-render0 libxcb-shm0 libxrandr2 libxrender1 libxtst6 pulseaudio-utils rtkit x11-common Suggested packages: gvfs libvisual-0.4-plugins jackd2 opus-tools snapd pavumeter pavucontrol paman paprefs ubuntu-sounds The following NEW packages will be installed: cec-utils gstreamer1.0-plugins-base libasound2-plugins libasyncns0 libcairo2 libcdparanoia0 libcec4 libflac8 libgomp1 libgstreamer-plugins-base1.0-0 libice6 libjack-jackd2-0 libjson-glib-1.0-0 libjson-glib-1.0-common libopus0 liborc-0.4-0 libp8-platform2 libpixman-1-0 libpulse0 libpulsedsp libsamplerate0 libsm6 libsnapd-glib1 libsndfile1 libsoxr0 libspeexdsp1 libtheora0 libvisual-0.4-0 libvorbisenc2 libwebrtc-audio-processing1 libx11-xcb1 libxcb-render0 libxcb-shm0 libxrandr2 libxrender1 libxtst6 pulseaudio pulseaudio-utils rtkit x11-common 0 upgraded, 40 newly installed, 0 to remove and 0 not upgraded. Need to get 6,056 kB of archives. After this operation, 22.5 MB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://repo.huaweicloud.com/ubuntu-ports focal-updates/main arm64 liborc-0.4-0 arm64 1:0.4.31-1ubuntu0.1 [172 kB] Get:2 http://repo.huaweicloud.com/ubuntu-ports focal-updates/main arm64 libgstreamer-plugins-base1.0-0 arm64 1.16.3-0ubuntu1.4 [665 kB] Get:3 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 x11-common all 1:7.7+19ubuntu14 [22.3 kB] Get:4 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 libice6 arm64 2:1.0.10-0ubuntu1 [37.7 kB] Get:5 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 libasyncns0 arm64 0.8-6 [10.9 kB] Get:6 http://repo.huaweicloud.com/ubuntu-ports focal-updates/main arm64 libflac8 arm64 1.3.3-1ubuntu0.2 [85.8 kB] Get:7 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 libvorbisenc2 arm64 1.3.6-2ubuntu1 [70.5 kB] Get:8 http://repo.huaweicloud.com/ubuntu-ports focal-updates/main arm64 libsndfile1 arm64 1.0.28-7ubuntu0.3 [163 kB] Get:9 http://repo.huaweicloud.com/ubuntu-ports focal-updates/main arm64 libpulse0 arm64 1:13.99.1-1ubuntu3.13 [222 kB] Get:10 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 libsm6 arm64 2:1.2.3-1 [15.1 kB] Get:11 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 libjson-glib-1.0-common all 1.4.4-2ubuntu2 [3,468 B] Get:12 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 libjson-glib-1.0-0 arm64 1.4.4-2ubuntu2 [54.0 kB] Get:13 http://repo.huaweicloud.com/ubuntu-ports focal-updates/main arm64 libsnapd-glib1 arm64 1.58-0ubuntu0.20.04.0 [82.7 kB] Get:14 http://repo.huaweicloud.com/ubuntu-ports focal-updates/main arm64 libgomp1 arm64 10.5.0-1ubuntu1~20.04 [93.5 kB] Get:15 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 libsoxr0 arm64 0.1.3-2build1 [54.3 kB] Get:16 http://repo.huaweicloud.com/ubuntu-ports focal-updates/main arm64 libspeexdsp1 arm64 1.2~rc1.2-1.1ubuntu1.20.04.1 [34.7 kB] Get:17 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 libwebrtc-audio-processing1 arm64 0.3.1-0ubuntu3 [245 kB] Get:18 http://repo.huaweicloud.com/ubuntu-ports focal-updates/main arm64 libx11-xcb1 arm64 2:1.6.9-2ubuntu1.6 [9,468 B] Get:19 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 libxtst6 arm64 2:1.2.3-1 [11.7 kB] Get:20 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 libsamplerate0 arm64 0.1.9-2 [931 kB] Get:21 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 libjack-jackd2-0 arm64 1.9.12~dfsg-2ubuntu2 [248 kB] Get:22 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 libasound2-plugins arm64 1.2.2-1ubuntu1 [61.7 kB] Get:23 http://repo.huaweicloud.com/ubuntu-ports focal-updates/main arm64 libpulsedsp arm64 1:13.99.1-1ubuntu3.13 [20.0 kB] Get:24 http://repo.huaweicloud.com/ubuntu-ports focal-updates/main arm64 pulseaudio-utils arm64 1:13.99.1-1ubuntu3.13 [51.8 kB] Get:25 http://repo.huaweicloud.com/ubuntu-ports focal-updates/main arm64 pulseaudio arm64 1:13.99.1-1ubuntu3.13 [690 kB] Get:26 http://repo.huaweicloud.com/ubuntu-ports focal/universe arm64 libp8-platform2 arm64 2.1.0.1+dfsg1-3build1 [20.3 kB] Get:27 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 libxrender1 arm64 1:0.9.10-1 [16.1 kB] Get:28 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 libxrandr2 arm64 2:1.5.2-0ubuntu1 [17.7 kB] Get:29 http://repo.huaweicloud.com/ubuntu-ports focal/universe arm64 libcec4 arm64 4.0.4+dfsg1-4ubuntu3 [196 kB] Get:30 http://repo.huaweicloud.com/ubuntu-ports focal/universe arm64 cec-utils arm64 4.0.4+dfsg1-4ubuntu3 [30.6 kB] Get:31 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 libcdparanoia0 arm64 3.10.2+debian-13 [39.9 kB] Get:32 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 libopus0 arm64 1.3.1-0ubuntu1 [172 kB] Get:33 http://repo.huaweicloud.com/ubuntu-ports focal-updates/main arm64 libpixman-1-0 arm64 0.38.4-0ubuntu2.1 [130 kB] Get:34 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 libxcb-render0 arm64 1.14-2 [14.7 kB] Get:35 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 libxcb-shm0 arm64 1.14-2 [5,560 B] Get:36 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 libcairo2 arm64 1.16.0-4ubuntu1 [538 kB] Get:37 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 libtheora0 arm64 1.1.1+dfsg.1-15ubuntu2 [154 kB] Get:38 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 libvisual-0.4-0 arm64 0.4.0-17 [91.3 kB] Get:39 http://repo.huaweicloud.com/ubuntu-ports focal-updates/main arm64 gstreamer1.0-plugins-base arm64 1.16.3-0ubuntu1.4 [542 kB] Get:40 http://repo.huaweicloud.com/ubuntu-ports focal/main arm64 rtkit arm64 0.12-4 [32.4 kB] Fetched 6,056 kB in 2s (2,752 kB/s) Extracting templates from packages: 100% Selecting previously unselected package liborc-0.4-0:arm64. (Reading database ... 28335 files and directories currently installed.) Preparing to unpack .../00-liborc-0.4-0_1%3a0.4.31-1ubuntu0.1_arm64.deb ... Unpacking liborc-0.4-0:arm64 (1:0.4.31-1ubuntu0.1) ... Selecting previously unselected package libgstreamer-plugins-base1.0-0:arm64. Preparing to unpack .../01-libgstreamer-plugins-base1.0-0_1.16.3-0ubuntu1.4_arm64.deb ... Unpacking libgstreamer-plugins-base1.0-0:arm64 (1.16.3-0ubuntu1.4) ... Selecting previously unselected package x11-common. Preparing to unpack .../02-x11-common_1%3a7.7+19ubuntu14_all.deb ... dpkg-query: no packages found matching nux-tools Unpacking x11-common (1:7.7+19ubuntu14) ... Selecting previously unselected package libice6:arm64. Preparing to unpack .../03-libice6_2%3a1.0.10-0ubuntu1_arm64.deb ... Unpacking libice6:arm64 (2:1.0.10-0ubuntu1) ... Selecting previously unselected package libasyncns0:arm64. Preparing to unpack .../04-libasyncns0_0.8-6_arm64.deb ... Unpacking libasyncns0:arm64 (0.8-6) ... Selecting previously unselected package libflac8:arm64. Preparing to unpack .../05-libflac8_1.3.3-1ubuntu0.2_arm64.deb ... Unpacking libflac8:arm64 (1.3.3-1ubuntu0.2) ... Selecting previously unselected package libvorbisenc2:arm64. Preparing to unpack .../06-libvorbisenc2_1.3.6-2ubuntu1_arm64.deb ... Unpacking libvorbisenc2:arm64 (1.3.6-2ubuntu1) ... Selecting previously unselected package libsndfile1:arm64. Preparing to unpack .../07-libsndfile1_1.0.28-7ubuntu0.3_arm64.deb ... Unpacking libsndfile1:arm64 (1.0.28-7ubuntu0.3) ... Selecting previously unselected package libpulse0:arm64. Preparing to unpack .../08-libpulse0_1%3a13.99.1-1ubuntu3.13_arm64.deb ... Unpacking libpulse0:arm64 (1:13.99.1-1ubuntu3.13) ... Selecting previously unselected package libsm6:arm64. Preparing to unpack .../09-libsm6_2%3a1.2.3-1_arm64.deb ... Unpacking libsm6:arm64 (2:1.2.3-1) ... Selecting previously unselected package libjson-glib-1.0-common. Preparing to unpack .../10-libjson-glib-1.0-common_1.4.4-2ubuntu2_all.deb ... Unpacking libjson-glib-1.0-common (1.4.4-2ubuntu2) ... Selecting previously unselected package libjson-glib-1.0-0:arm64. Preparing to unpack .../11-libjson-glib-1.0-0_1.4.4-2ubuntu2_arm64.deb ... Unpacking libjson-glib-1.0-0:arm64 (1.4.4-2ubuntu2) ... Selecting previously unselected package libsnapd-glib1:arm64. Preparing to unpack .../12-libsnapd-glib1_1.58-0ubuntu0.20.04.0_arm64.deb ... Unpacking libsnapd-glib1:arm64 (1.58-0ubuntu0.20.04.0) ... Selecting previously unselected package libgomp1:arm64. Preparing to unpack .../13-libgomp1_10.5.0-1ubuntu1~20.04_arm64.deb ... Unpacking libgomp1:arm64 (10.5.0-1ubuntu1~20.04) ... Selecting previously unselected package libsoxr0:arm64. Preparing to unpack .../14-libsoxr0_0.1.3-2build1_arm64.deb ... Unpacking libsoxr0:arm64 (0.1.3-2build1) ... Selecting previously unselected package libspeexdsp1:arm64. Preparing to unpack .../15-libspeexdsp1_1.2~rc1.2-1.1ubuntu1.20.04.1_arm64.deb ... Unpacking libspeexdsp1:arm64 (1.2~rc1.2-1.1ubuntu1.20.04.1) ... Selecting previously unselected package libwebrtc-audio-processing1:arm64. Preparing to unpack .../16-libwebrtc-audio-processing1_0.3.1-0ubuntu3_arm64.deb ... Unpacking libwebrtc-audio-processing1:arm64 (0.3.1-0ubuntu3) ... Selecting previously unselected package libx11-xcb1:arm64. Preparing to unpack .../17-libx11-xcb1_2%3a1.6.9-2ubuntu1.6_arm64.deb ... Unpacking libx11-xcb1:arm64 (2:1.6.9-2ubuntu1.6) ... Selecting previously unselected package libxtst6:arm64. Preparing to unpack .../18-libxtst6_2%3a1.2.3-1_arm64.deb ... Unpacking libxtst6:arm64 (2:1.2.3-1) ... Selecting previously unselected package libsamplerate0:arm64. Preparing to unpack .../19-libsamplerate0_0.1.9-2_arm64.deb ... Unpacking libsamplerate0:arm64 (0.1.9-2) ... Selecting previously unselected package libjack-jackd2-0:arm64. Preparing to unpack .../20-libjack-jackd2-0_1.9.12~dfsg-2ubuntu2_arm64.deb ... Unpacking libjack-jackd2-0:arm64 (1.9.12~dfsg-2ubuntu2) ... Selecting previously unselected package libasound2-plugins:arm64. Preparing to unpack .../21-libasound2-plugins_1.2.2-1ubuntu1_arm64.deb ... Unpacking libasound2-plugins:arm64 (1.2.2-1ubuntu1) ... Selecting previously unselected package libpulsedsp:arm64. Preparing to unpack .../22-libpulsedsp_1%3a13.99.1-1ubuntu3.13_arm64.deb ... Unpacking libpulsedsp:arm64 (1:13.99.1-1ubuntu3.13) ... Selecting previously unselected package pulseaudio-utils. Preparing to unpack .../23-pulseaudio-utils_1%3a13.99.1-1ubuntu3.13_arm64.deb ... Unpacking pulseaudio-utils (1:13.99.1-1ubuntu3.13) ... Selecting previously unselected package pulseaudio. Preparing to unpack .../24-pulseaudio_1%3a13.99.1-1ubuntu3.13_arm64.deb ... Unpacking pulseaudio (1:13.99.1-1ubuntu3.13) ... Selecting previously unselected package libp8-platform2:arm64. Preparing to unpack .../25-libp8-platform2_2.1.0.1+dfsg1-3build1_arm64.deb ... Unpacking libp8-platform2:arm64 (2.1.0.1+dfsg1-3build1) ... Selecting previously unselected package libxrender1:arm64. Preparing to unpack .../26-libxrender1_1%3a0.9.10-1_arm64.deb ... Unpacking libxrender1:arm64 (1:0.9.10-1) ... Selecting previously unselected package libxrandr2:arm64. Preparing to unpack .../27-libxrandr2_2%3a1.5.2-0ubuntu1_arm64.deb ... Unpacking libxrandr2:arm64 (2:1.5.2-0ubuntu1) ... Selecting previously unselected package libcec4:arm64. Preparing to unpack .../28-libcec4_4.0.4+dfsg1-4ubuntu3_arm64.deb ... Unpacking libcec4:arm64 (4.0.4+dfsg1-4ubuntu3) ... Selecting previously unselected package cec-utils. Preparing to unpack .../29-cec-utils_4.0.4+dfsg1-4ubuntu3_arm64.deb ... Unpacking cec-utils (4.0.4+dfsg1-4ubuntu3) ... Selecting previously unselected package libcdparanoia0:arm64. Preparing to unpack .../30-libcdparanoia0_3.10.2+debian-13_arm64.deb ... Unpacking libcdparanoia0:arm64 (3.10.2+debian-13) ... Selecting previously unselected package libopus0:arm64. Preparing to unpack .../31-libopus0_1.3.1-0ubuntu1_arm64.deb ... Unpacking libopus0:arm64 (1.3.1-0ubuntu1) ... Selecting previously unselected package libpixman-1-0:arm64. Preparing to unpack .../32-libpixman-1-0_0.38.4-0ubuntu2.1_arm64.deb ... Unpacking libpixman-1-0:arm64 (0.38.4-0ubuntu2.1) ... Selecting previously unselected package libxcb-render0:arm64. Preparing to unpack .../33-libxcb-render0_1.14-2_arm64.deb ... Unpacking libxcb-render0:arm64 (1.14-2) ... Selecting previously unselected package libxcb-shm0:arm64. Preparing to unpack .../34-libxcb-shm0_1.14-2_arm64.deb ... Unpacking libxcb-shm0:arm64 (1.14-2) ... Selecting previously unselected package libcairo2:arm64. Preparing to unpack .../35-libcairo2_1.16.0-4ubuntu1_arm64.deb ... Unpacking libcairo2:arm64 (1.16.0-4ubuntu1) ... Selecting previously unselected package libtheora0:arm64. Preparing to unpack .../36-libtheora0_1.1.1+dfsg.1-15ubuntu2_arm64.deb ... Unpacking libtheora0:arm64 (1.1.1+dfsg.1-15ubuntu2) ... Selecting previously unselected package libvisual-0.4-0:arm64. Preparing to unpack .../37-libvisual-0.4-0_0.4.0-17_arm64.deb ... Unpacking libvisual-0.4-0:arm64 (0.4.0-17) ... Selecting previously unselected package gstreamer1.0-plugins-base:arm64. Preparing to unpack .../38-gstreamer1.0-plugins-base_1.16.3-0ubuntu1.4_arm64.deb ... Unpacking gstreamer1.0-plugins-base:arm64 (1.16.3-0ubuntu1.4) ... Selecting previously unselected package rtkit. Preparing to unpack .../39-rtkit_0.12-4_arm64.deb ... Unpacking rtkit (0.12-4) ... Setting up libpixman-1-0:arm64 (0.38.4-0ubuntu2.1) ... Setting up libcdparanoia0:arm64 (3.10.2+debian-13) ... Setting up libx11-xcb1:arm64 (2:1.6.9-2ubuntu1.6) ... Setting up rtkit (0.12-4) ... Setting up libxrender1:arm64 (1:0.9.10-1) ... Setting up libvisual-0.4-0:arm64 (0.4.0-17) ... Setting up libxcb-render0:arm64 (1.14-2) ... Setting up x11-common (1:7.7+19ubuntu14) ... update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults Setting up libwebrtc-audio-processing1:arm64 (0.3.1-0ubuntu3) ... Setting up libxcb-shm0:arm64 (1.14-2) ... Setting up libgomp1:arm64 (10.5.0-1ubuntu1~20.04) ... Setting up libcairo2:arm64 (1.16.0-4ubuntu1) ... Setting up libflac8:arm64 (1.3.3-1ubuntu0.2) ... Setting up libp8-platform2:arm64 (2.1.0.1+dfsg1-3build1) ... Setting up libopus0:arm64 (1.3.1-0ubuntu1) ... Setting up libxrandr2:arm64 (2:1.5.2-0ubuntu1) ... Setting up liborc-0.4-0:arm64 (1:0.4.31-1ubuntu0.1) ... Setting up libasyncns0:arm64 (0.8-6) ... Setting up libtheora0:arm64 (1.1.1+dfsg.1-15ubuntu2) ... Setting up libspeexdsp1:arm64 (1.2~rc1.2-1.1ubuntu1.20.04.1) ... Setting up libjson-glib-1.0-common (1.4.4-2ubuntu2) ... Setting up libsamplerate0:arm64 (0.1.9-2) ... Setting up libvorbisenc2:arm64 (1.3.6-2ubuntu1) ... Setting up libice6:arm64 (2:1.0.10-0ubuntu1) ... Setting up libsoxr0:arm64 (0.1.3-2build1) ... Setting up libxtst6:arm64 (2:1.2.3-1) ... Setting up libgstreamer-plugins-base1.0-0:arm64 (1.16.3-0ubuntu1.4) ... Setting up libjson-glib-1.0-0:arm64 (1.4.4-2ubuntu2) ... Setting up gstreamer1.0-plugins-base:arm64 (1.16.3-0ubuntu1.4) ... Setting up libcec4:arm64 (4.0.4+dfsg1-4ubuntu3) ... Setting up cec-utils (4.0.4+dfsg1-4ubuntu3) ... Setting up libjack-jackd2-0:arm64 (1.9.12~dfsg-2ubuntu2) ... Setting up libsndfile1:arm64 (1.0.28-7ubuntu0.3) ... Setting up libsm6:arm64 (2:1.2.3-1) ... Setting up libsnapd-glib1:arm64 (1.58-0ubuntu0.20.04.0) ... Setting up libpulse0:arm64 (1:13.99.1-1ubuntu3.13) ... Setting up libpulsedsp:arm64 (1:13.99.1-1ubuntu3.13) ... Setting up pulseaudio-utils (1:13.99.1-1ubuntu3.13) ... Setting up libasound2-plugins:arm64 (1.2.2-1ubuntu1) ... Setting up pulseaudio (1:13.99.1-1ubuntu3.13) ... Adding user pulse to group audio Created symlink /etc/systemd/user/default.target.wants/pulseaudio.service → /usr/lib/systemd/user/pulseaudio.service. Created symlink /etc/systemd/user/sockets.target.wants/pulseaudio.socket → /usr/lib/systemd/user/pulseaudio.socket. Processing triggers for libc-bin (2.31-0ubuntu9.18) ... Processing triggers for systemd (245.4-4ubuntu3.24) ... Processing triggers for dbus (1.12.16-2ubuntu2.3) ... root@hi3798mv300:~# # 在海纳思系统启用AirPlay root@hi3798mv300:~# sudo apt install shairport-sync Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libconfig9 libmosquitto1 The following NEW packages will be installed: libconfig9 libmosquitto1 shairport-sync 0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. Need to get 252 kB of archives. After this operation, 833 kB of additional disk space will be used. Do you want to continue? [Y/n] y Abort. root@hi3798mv300:~# # 测试脚本(开发者工具 > 服务) root@hi3798mv300:~# service: media_player.play_media -bash: service:: command not found root@hi3798mv300:~# target: -bash: target:: command not found root@hi3798mv300:~# entity_id: media_player.living_room_tv -bash: entity_id:: command not found root@hi3798mv300:~# data: -bash: data:: command not found root@hi3798mv300:~# media_content_id: "http://192.168.68.142:8123/local/test.mp3" # 测试音频URL -bash: media_content_id:: command not found root@hi3798mv300:~# media_content_type: "audio/mp3" -bash: media_content_type:: command not found root@hi3798mv300:~# 我按照你说的弄完了 还是不行 电视放声音音响不出声音
最新发布
07-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值