[TOC]
# **pygame.sndarray**
Pygame 中訪問音頻采樣數據的模塊。
## **函數**
- pygame.sndarray.array —— 將一個音頻采樣復制到一個數組內
- pygame.sndarray.samples —— 將一個音頻采樣引用到一個數組內
- pygame.sndarray.make_sound —— 將一個數組轉變成一個音頻對象
- pygame.sndarray.use_arraytype —— 設置用于音頻數組的數組系統
- pygame.sndarray.get_arraytype —— 獲取當前正在使用的數組類型
- pygame.sndarray.get_arraytypes —— 獲取當前正在工作的數組系統類型
以上函數用于在 Numpy 數組和 Sound 對象之間進行相互轉換。
本模塊僅當 pygame 可以使用 numpy 或 Numeric 模塊時是有效的(Numeric 相對過時了,請使用最新的 numpy)。
音頻數據是由每秒數千個采樣組成,而且每個采樣都是特定時刻的音波的振幅。例如,在 22-kHz 格式里,音頻數組的第 5 個元素是音波在 5/22000 秒后的振幅。
每個采樣是一個 8 位或者 16 位的整數,這取決于數據格式。一個立體聲文件里每個采樣有兩個值,而單聲道文件里每個采樣只有一個值。
支持的數組系統有:
1. numpy
2. Numeric(過時,已在 Pygame 1.9.3 中棄用)
如果安裝了 numpy 模塊,那么默認使用的是 numpy 數組。否則將會被設置成 Numeric(如果有安裝),但會產生一個反對的警告(說這玩意兒快過時了,建議使用 numpy 代替)。
如果 numpy 和 Numeric 都沒有安裝,本模塊會產生一個 ImportError 錯誤。
通過使用 use_arraytype() 函數,可以改變使用的數組類型(將字符串 “numpy” 或 “Numeric” 作為參數)。
注意:numpy 和 Numeric 并不是完全兼容。對于某一種數組類型來說的一個正確操作,可能在另外一種數組類型中會產生不同的效果,甚至導致徹底的崩潰。
此外,相比于 Numeric,numpy 可以使用無符號 16 位整數。如果音頻采樣類型需要,16 位的音頻數據可以被當做無符號整數使用。而 Numeric 則總是使用有符號整數表示采樣數據。這十分重要,請務必牢記。
在 Pygame 1.8 中加入對 numpy 的支持,并于 Pygame 1.9.2 開始反對使用 Numeric 。
## **函數詳解**
### **pygame.sndarray.array()**
將一個音頻采樣復制到一個數組內。
array(Sound) -> array
創建一個新的數組用于保存音頻數據,并將采樣值復制到數組內。
這個數組將一直保持由 pygame.mixer.get_init() 所返回的格式。
### **pygame.sndarray.samples()**
將一個音頻采樣引用到一個數組內。
samples(Sound) -> array
創建一個直接引用音頻對象內的采樣的新數組。修改這個數組將會改變音頻。
這個數組將一直保持由 pygame.mixer.get_init() 所返回的格式。
### **pygame.sndarray.make_sound()**
將一個數組轉變成一個音頻對象。
make_sound(array) -> Sound
根據一個音頻數組,創建一個可播放的音頻對象。
mixer 模塊必須先初始化,且數組格式必須與 mixer 音頻格式相似。
### **pygame.sndarray.use_arraytype()**
設置用于音頻數組的數組系統。
use_arraytype (arraytype) -> None
使用模塊函數所要求的數組類型。目前支持的數組類型為:
1. numpy
2. Numeric(過時,已在 Pygame 1.9.3 中棄用)
如果要求的類型不被支持,會產生一個 ValueError 的錯誤。
### **pygame.sndarray.get_arraytype()**
獲取當前正在使用的數組類型。
get_arraytype () -> str
返回當前正在使用的數組的類型。
此函數返回的是 get_arraytypes() 的返回元組內的一個值,而且會表明哪種數組模塊類型被用于創建該數組。
### **pygame.sndarray.get_arraytypes()**
獲取當前正在工作的數組系統類型
get_arraytypes () -> tuple
檢查哪個數組系統是可使用的然后返回相應的字符串元組。
元組的值可以被直接用于 pygame.sndarray.use_arraytype() 函數。如果沒有發現受支持的數組系統類型,返回 None。
- 一、Python基礎
- 1. 序言
- 1.1 Python簡介
- 1.2 安裝和使用IDE
- 1.3 語言特性和基礎概念
- 2. 基本數據類型
- 2.2 字符串型
- 2.2.2 ASCII簡介
- 2.2.4 字符串常用函數
- 3. 條件分支
- 3.3 閑聊條件判斷和運算符優先級
- 10.正則表達式
- 【降龍十八章】Python小技巧
- 18.1 學習網址
- 18.2 PIP切換源
- 18.3 使用whl來安裝
- 【工具優化】IDE優化技巧
- Anaconda
- Jupyter Notebook 的 Markdown 添加大綱
- Jupyter Notebook中圖片縮放和居左
- Anaconda設置環境變量
- Pycharm
- PyCharm新建文檔配置
- 設置字體和字號
- 設置主題和字體配色
- 保存和導入配置
- 設置對選擇內容自動添加引號
- 推薦安裝的插件
- Markdown
- 表格格式
- 二、Python進階
- copy和deepcopy
- 《零基礎入門學習 Python 》【小甲魚版】
- 001.和Python的第一次接觸+習題復習
- 002.用Python設計的第一個游戲 +習題復習
- Pygame詳解
- Pygame詳解:前言
- Pygame詳解(一):Color類
- Pygame詳解(二):display 模塊
- Pygame詳解(三):draw 模塊
- Pygame詳解(四):event 模塊
- Pygame詳解(五):font 模塊
- Pygame詳解(六):image 模塊
- Pygame詳解(七):key 模塊
- Pygame詳解(八):locals 模塊
- Pygame詳解(九):mixer 模塊
- Pygame詳解(十):mouse 模塊
- Pygame詳解(十一):Rect 對象
- Pygame詳解(十二):Surface 對象
- Pygame詳解(十三):time 模塊
- Pygame詳解(十四):music 模塊
- Pygame詳解(十五):pygame 模塊
- Pygame詳解(十六):cursors 模塊
- Pygame詳解(十七):joystick 模塊
- Pygame詳解(十八):mask 模塊
- Pygame詳解(二十一):BufferProxy 對象
- Pygame詳解(二十三):gfxdraw 模塊
- Pygame詳解(二十五):Overlay 對象
- Pygame詳解(二十八):sndarray 模塊
- Pygame詳解(三十一):camera 模塊
- Pygame詳解(三十二):cdrom 模塊
- Pygame詳解(三十六):version 模塊
- pygame rect相關知識
- Tkinter詳解
- Tkinter 組件詳解(一):Label
- Tkinter 組件詳解(二):Button