導航:首頁 > 文件處理 > android語音壓縮

android語音壓縮

發布時間:2023-05-23 21:13:21

1. android中語音的壓縮使用的什麼演算法

把一些贊美當成春天我對我的熱情和你的冷漠都失去了把一個和橫店類似的村莊當成故鄉耐心而它們活與不活真的是另外一件事情

2. android語音錄制後怎麼壓縮語音文件,就是微信語音對講機說完,怎樣壓縮這個文件,求大神治療

android自帶的語音編碼後生成的amr本身就很小吧,不用壓縮也完全可以用了。htt(蔽野網路知道不能發鏈接吧)p://download.csdn.net/download/jiangchao5411/6448859,看或斗看這個吧衫並磨

3. android中如何代碼壓縮音頻視頻文件呢

知道怎麼壓縮文件,音視頻文件應該差不多吧O.O
package com.once;

import java.io.*;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;

/**
* Java utils 實現的Zip工具
*
* @author once
*/
public class ZipUtils {
private static final int BUFF_SIZE = 1024 * 1024; // 1M Byte

/**
* 批量壓縮文件(夾)
*
* @param resFileList 要壓縮的文件(夾)列表
* @param zipFile 生成的壓縮文件
* @throws IOException 當壓縮過程出錯時拋出
*/
public static void zipFiles(Collection<File> resFileList, File zipFile) throws IOException {
ZipOutputStream zipout = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(
zipFile), BUFF_SIZE));
for (File resFile : resFileList) {
zipFile(resFile, zipout, "");
}
zipout.close();
}

/**
* 批量壓縮文件(夾)
*
* @param resFileList 要壓縮的文件(夾)列表
* @param zipFile 生成的壓縮文件
* @param comment 壓縮文件的注釋
* @throws IOException 當壓縮過程出錯時拋出
*/
public static void zipFiles(Collection<File> resFileList, File zipFile, String comment)
throws IOException {
ZipOutputStream zipout = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(
zipFile), BUFF_SIZE));
for (File resFile : resFileList) {
zipFile(resFile, zipout, "");
}
zipout.setComment(comment);
zipout.close();
}

/**
* 解壓縮一個文件
*
* @param zipFile 壓縮文件
* @param folderPath 解壓縮的目標目錄
* @throws IOException 當解壓縮過程出錯時拋出
*/
public static void upZipFile(File zipFile, String folderPath) throws ZipException, IOException {
File desDir = new File(folderPath);
if (!desDir.exists()) {
desDir.mkdirs();
}
ZipFile zf = new ZipFile(zipFile);
for (Enumeration<?> entries = zf.entries(); entries.hasMoreElements();) {
ZipEntry entry = ((ZipEntry)entries.nextElement());
InputStream in = zf.getInputStream(entry);
String str = folderPath + File.separator + entry.getName();
str = new String(str.getBytes("8859_1"), "GB2312");
File desFile = new File(str);
if (!desFile.exists()) {
File fileParentDir = desFile.getParentFile();
if (!fileParentDir.exists()) {
fileParentDir.mkdirs();
}
desFile.createNewFile();
}
OutputStream out = new FileOutputStream(desFile);
byte buffer[] = new byte[BUFF_SIZE];
int realLength;
while ((realLength = in.read(buffer)) > 0) {
out.write(buffer, 0, realLength);
}
in.close();
out.close();
}
}

/**
* 解壓文件名包含傳入文字的文件
*
* @param zipFile 壓縮文件
* @param folderPath 目標文件夾
* @param nameContains 傳入的文件匹配名
* @throws ZipException 壓縮格式有誤時拋出
* @throws IOException IO錯誤時拋出
*/
public static ArrayList<File> upZipSelectedFile(File zipFile, String folderPath,
String nameContains) throws ZipException, IOException {
ArrayList<File> fileList = new ArrayList<File>();

File desDir = new File(folderPath);
if (!desDir.exists()) {
desDir.mkdir();
}

ZipFile zf = new ZipFile(zipFile);
for (Enumeration<?> entries = zf.entries(); entries.hasMoreElements();) {
ZipEntry entry = ((ZipEntry)entries.nextElement());
if (entry.getName().contains(nameContains)) {
InputStream in = zf.getInputStream(entry);
String str = folderPath + File.separator + entry.getName();
str = new String(str.getBytes("8859_1"), "GB2312");
// str.getBytes("GB2312"),"8859_1" 輸出
// str.getBytes("8859_1"),"GB2312" 輸入
File desFile = new File(str);
if (!desFile.exists()) {
File fileParentDir = desFile.getParentFile();
if (!fileParentDir.exists()) {
fileParentDir.mkdirs();
}
desFile.createNewFile();
}
OutputStream out = new FileOutputStream(desFile);
byte buffer[] = new byte[BUFF_SIZE];
int realLength;
while ((realLength = in.read(buffer)) > 0) {
out.write(buffer, 0, realLength);
}
in.close();
out.close();
fileList.add(desFile);
}
}
return fileList;
}

/**
* 獲得壓縮文件內文件列表
*
* @param zipFile 壓縮文件
* @return 壓縮文件內文件名稱
* @throws ZipException 壓縮文件格式有誤時拋出
* @throws IOException 當解壓縮過程出錯時拋出
*/
public static ArrayList<String> getEntriesNames(File zipFile) throws ZipException, IOException {
ArrayList<String> entryNames = new ArrayList<String>();
Enumeration<?> entries = getEntriesEnumeration(zipFile);
while (entries.hasMoreElements()) {
ZipEntry entry = ((ZipEntry)entries.nextElement());
entryNames.add(new String(getEntryName(entry).getBytes("GB2312"), "8859_1"));
}
return entryNames;
}

/**
* 獲得壓縮文件內壓縮文件對象以取得其屬性
*
* @param zipFile 壓縮文件
* @return 返回一個壓縮文件列表
* @throws ZipException 壓縮文件格式有誤時拋出
* @throws IOException IO操作有誤時拋出
*/
public static Enumeration<?> getEntriesEnumeration(File zipFile) throws ZipException,
IOException {
ZipFile zf = new ZipFile(zipFile);
return zf.entries();

}

/**
* 取得壓縮文件對象的注釋
*
* @param entry 壓縮文件對象
* @return 壓縮文件對象的注釋
* @throws UnsupportedEncodingException
*/
public static String getEntryComment(ZipEntry entry) throws UnsupportedEncodingException {
return new String(entry.getComment().getBytes("GB2312"), "8859_1");
}

/**
* 取得壓縮文件對象的名稱
*
* @param entry 壓縮文件對象
* @return 壓縮文件對象的名稱
* @throws UnsupportedEncodingException
*/
public static String getEntryName(ZipEntry entry) throws UnsupportedEncodingException {
return new String(entry.getName().getBytes("GB2312"), "8859_1");
}

/**
* 壓縮文件
*
* @param resFile 需要壓縮的文件(夾)
* @param zipout 壓縮的目的文件
* @param rootpath 壓縮的文件路徑
* @throws FileNotFoundException 找不到文件時拋出
* @throws IOException 當壓縮過程出錯時拋出
*/
private static void zipFile(File resFile, ZipOutputStream zipout, String rootpath)
throws FileNotFoundException, IOException {
rootpath = rootpath + (rootpath.trim().length() == 0 ? "" : File.separator)
+ resFile.getName();
rootpath = new String(rootpath.getBytes("8859_1"), "GB2312");
if (resFile.isDirectory()) {
File[] fileList = resFile.listFiles();
for (File file : fileList) {
zipFile(file, zipout, rootpath);
}
} else {
byte buffer[] = new byte[BUFF_SIZE];
BufferedInputStream in = new BufferedInputStream(new FileInputStream(resFile),
BUFF_SIZE);
zipout.putNextEntry(new ZipEntry(rootpath));
int realLength;
while ((realLength = in.read(buffer)) != -1) {
zipout.write(buffer, 0, realLength);
}
in.close();
zipout.flush();
zipout.closeEntry();
}
}
}

4. 語音怎麼壓縮成文件

首先,我們查看一下需要壓縮的音頻文件的大小以及比特率。

右鍵點擊該音頻文件,在餐單中,選擇「屬性」。

在「常規」頁面,我們可以看到它的大小為9.23MB。我們需要將它壓縮到4MB大小以內。

繼續點擊進入「詳細信息」頁面,我們可以看到它的比特率為320kbps。

如何壓縮音頻文件大小,而不裁剪其長度
如何壓縮音頻文件大小,而不裁剪其長度
打開酷狗音樂播放器,選擇「工具」選項(舊版本則為「更多」選項)。

選擇「格式轉換」。

如何壓縮音頻文件大小,而不裁剪其長度
在彈出的「格式轉換工具」窗口上方,選擇「添加文件」選項。

選擇打開需要壓縮的音頻文件。

如何壓縮音頻文件大小,而不裁剪其長度
如何壓縮音頻文件大小,而不裁剪其長度
點擊「音樂質量」選項,根據自己希望壓縮後的音頻文件大小,選擇相應的比特率。

一般來說,比特率越小,音頻文件也就越小,當然音質也會越差。

需要壓縮的原音頻文件大小為9.23MB,比特率為320kbps。

我們希望壓縮後的音頻文件大小控制在4MB以內,所以我們在這里可以嘗試壓縮成比特率為160kpbs和128kpbs的音頻。

如何壓縮音頻文件大小,而不裁剪其長度
然後,可以通過點擊「更改」選項,選擇將壓縮後的音頻文件放在電腦中的那個位置。

如果目標文件夾與源文件所在的位置相同,則會自動重命名壓縮後的音頻文件,以示區分。

在長度相同的情況下,音頻文件的大小與比特率成正比例關系

5. android音視頻開發一安卓常用API

Android SDK 提供了兩套音頻採集的API,分別是:MediaRecorder 和 AudioRecord,前者是一個更加上層一點的API,它可以直接把手機麥克風錄入的音頻數據進行編碼壓縮(如AMR、MP3等)並存成文件,而後者則更接近底層,能夠更加自由靈活地控制,可以得到原始的一幀幀PCM音頻數據。如果想簡單地做一個錄音機,錄製成音頻文件,則推薦使用 MediaRecorder,而如果需要對音頻做進一步的演算法處理、或者採用第三方的編碼庫進行壓縮、以及網路傳輸等應用,則建議使用 AudioRecord,其實 MediaRecorder 底層也是調用了 AudioRecord 與 Android Framework 層的 AudioFlinger 進行交互的。直播中實時採集音頻自然是要用AudioRecord了。

2.1 播放聲音可以用MediaPlayer和AudioTrack,兩者都提供了Java API供應用開發者使用。雖然都可以播放聲音,但兩者還是有很大的區別的。

2.2 其中最大的區別是MediaPlayer可以播放多種格式的聲音文件,例如MP3,AAC,WAV,OGG,MIDI等。MediaPlayer會在framework層創建對應的音頻解碼器。而AudioTrack只能播放已經解碼的PCM流,如果對比支持的文件格式的話則是AudioTrack只支持wav格式的音頻文件,因為wav格式的音頻文件大部分都是PCM流。AudioTrack不創建解碼器,所以只能播放不需要解碼的wav文件。

2.3 MediaPlayer在framework層還是會創建AudioTrack,把解碼後的PCM數流傳遞給AudioTrack,AudioTrack再傳遞給AudioFlinger進行混音,然後才傳遞給硬體播放,所以是MediaPlayer包含了AudioTrack。

2.4 在接觸Android音頻播放API的時候,發現SoundPool也可以用於播放音頻。下面是三者的使用場景:MediaPlayer 更加適合在後台長時間播放本地音樂文件或者在線的流式資源; SoundPool 則適合播放比較短的音頻片段,比如游戲聲音、按鍵聲、鈴聲片段等等,它可以同時播放多個音頻; 而 AudioTrack 則更接近底層,提供了非常強大的控制能力,支持低延遲播放,適合流媒體和VoIP語音電話等場景。

使用 Camera API 採集視頻數據並保存到文件,分別使用 SurfaceView、TextureView 來預覽 Camera 數據,取到 NV21 的數據回調。

4.1 一個音視頻文件是由音頻和視頻組成的,我們可以通過MediaExtractor、MediaMuxer把音頻或視頻給單獨抽取出來,抽取出來的音頻和視頻能單獨播放; 

4.2 MediaMuxer的作用是生成音頻或視頻文件;還可以把音頻與視頻混合成一個音視頻文件。

文獻資料  https://www.cnblogs.com/renhui/p/7452572.html

6. 微信語音怎麼壓縮轉發

可以通過以下方法將微信里的聊天記錄打包轉發給好友,具體步驟如下:1、打開手機,找到手機中的「微信」:2、打開微信,找到需要轉發的聊天記錄的所在聯系人:3、打開聊天窗口,長按需要轉發的其中一條聊天記錄,然後在彈出的對話框中選擇「多馴
微信是一個有著廣泛用戶基礎的軟體,普遍應用在人們的日常生活中,然而很多人卻不知道微信怎麼轉發語音,今天就讓我們一起來看看吧。
1.打開手機,找到並進入「微信」app,進入微信的主界面。2.找到你需要打包的聊天記錄的位置。3.進入該聊天界面後,找到你需要打包的信息,長按該條信息。4.然後就會跳出一個小功能欄,找到功能欄中最後的「更多...」,點擊「更多...」。5.點擊開始篩選
1.打開手機里的微信APP。
蘋果發現大的錄音文件可以通過先微信收藏再發送的方式發送,操作步驟如下:1.打開要發送的錄音文件,點擊錄音文件框左下角的按鈕,如下圖紅框所示;2.彈出分享菜單,選擇「微信」圖標,如下圖紅框所示帶虧;3.在彈出的菜單裡面選擇「收藏」,不要選擇

2.選擇好友並點擊毀行伍進入聊天界面纖或。
方法如下:1、首先要安裝wps,以發送紅色矩形中的文件為例2、點擊右上角紅色箭頭指向的位置3、點擊用其他應用打開4、點擊「WPS」5、點擊分享與發送6、點擊微信7、點擊拷貝到微信8、找到要發送的人,點擊發送9、文件已成功發送

3.長按你想要轉發的語音並點擊轉換為文字。
沒有辦法的,壓縮是必然的,當然我不建議使用電腦錄音這種來保存語音,你只能在選擇用什麼錄音設備上面下功夫了。

4.長按文字點擊發送給朋友即可。
首先當然要下載安裝同步助手最新版安裝成功之後,就可以連接你的iPhone設備,並運行同步助手。切換頁面至「更多功能」,點擊資料分類的最後一個按鈕【微信】,即可進入微信消息記錄管理器查看聊天記錄(支持微信3.5以上版本)直接查詢微信聊天記

注意事項:微信語音不可直接轉發,如出現差別請檢查手機微信是否為對應版本。
微信發送後顯示紅色感嘆號說明該信息由於網路原因發送失敗了,請稍後重新發送。可能是由於以下原因導致:1、網路連接不可用;2、朋友圈或發送消息頻繁;3、軟體本身出問題了;4、對方拉黑了,這個情況下也是發不出消息的。(6)android語音壓縮擴展閱讀:微信
擴展閱讀,以下內容您可能還感興趣。
關於iPhone插件,你們知不知道微信語音壓縮1秒的插件或軟體
親,可以安裝插件的是越獄機,刪除需要到cydia裡面找到那個插件,卸載即可刪除,望採納追問廢話,我手機已經越獄的,我只想知道這個功能的插件名叫什麼
微信公眾號如何做到語音消息不被壓縮?
這個問題我們平台也遇到了,語音上傳以後二壓是絕對的
無論mp3、wma、wav、amr格式,無論語音大小是不是100kb以內都會壓
現在的我們的解決辦法是盡量提高音量,自己把語音壓縮到100kb左右好像也有一點效果?
微信公眾平台上傳語音文件後音質太差了,有什麼辦法保持較高的音質上傳後不變質?
樓主問的也是我想問的,的確上傳後音質差很多,也不知怎麼解決
微信一秒語音是一首歌,誰知道怎麼做到的
這是通過微信的第三方插件實現的,目前我知道的有一款root手機才可以使用的插件就可以做到,但這種工具微信官方是禁止的,而且對於小白用戶來說,使用對手機會存在風險,所以不是很建議使用。
打開微信群一個人一直發一秒語音點開卻都是歌曲請問她怎麼做到的語音變成歌曲發出去還只有一秒
微信群語音變成歌曲發出去的方法:先將語音導出為MP3文件,然後再將合並的MP3文件發到群里即可。
具體步驟:
一、通過PC端的360軟體管家下載「同步助手」軟體。
二、點擊軟體主界面右下角的「微信」,軟體自動連接手機微信。由於PC端的同步助手軟體要獲取手機微信裡面的文字、圖片、語音、視頻等數據,因此每次連接都要比較長的時間。
三、搜索到你需要導出文字、圖片、語音、視頻的微信群或者微信好友名字。設置你導出數據的時間段。建議導出前可以在電腦桌面建立導出的文件名。
四、導出到txt。
五、導出到excel。
六、導出到圖片。
七、導出到語音
八、導出到小視頻。
九、導出信息前建議命名文件夾名稱,便於導出完畢後快捷找到導出的數據。
十、設定導出音頻文件的時間段,蘋果手機導出來的都是wav格式,一小段一小段的音頻文件,可以使用一些wav、mp3合並分割工具軟體進行合並。
十一、將合並後的文件再發送到微信里即可。

7. 語音怎麼壓縮成文件

語音通過錄音APP變成音頻文件,現在的手機自帶錄音APP,例如:

備註:電腦上也有相同功能的軟體,且功能更強大。

閱讀全文

與android語音壓縮相關的資料

熱點內容
如何設置google伺服器 瀏覽:695
linuxtrace工具源碼 瀏覽:178
源碼第二次開發 瀏覽:784
如何獲取網頁php源碼 瀏覽:729
還用飛那麼源碼 瀏覽:204
雲伺服器鏡像可以隨時更換嗎 瀏覽:92
r600a壓縮機多少錢 瀏覽:237
程序員那麼可愛第幾集在重慶相遇 瀏覽:673
上班兩公里源碼 瀏覽:817
南寧溯源碼燕窩訂制 瀏覽:933
在個人文件夾中新建文件 瀏覽:445
中國國家地理pdf下載 瀏覽:107
幾套房子抵押可以解壓其中一套嗎 瀏覽:569
微愛app室外地板怎麼裝飾 瀏覽:231
遼寧省醫保如何用app轉 瀏覽:311
鍾表cNc編程招聘 瀏覽:546
均線pdf 瀏覽:921
手機破解加密的壓縮包 瀏覽:429
dnf程序員分析 瀏覽:365
外星人適合編程嗎 瀏覽:205