Android音頻開(kāi)發(fā)及錄音文件的配置
一、Android音頻開(kāi)發(fā)(一):音頻基礎(chǔ)知識(shí)二、Android音頻開(kāi)發(fā)(二):錄制音頻(WAV及MP3格式)三、Android音頻開(kāi)發(fā)(三):使用ExoPlayer播放音頻四、Android音頻開(kāi)發(fā)(四):音頻播放模式五、Android音頻開(kāi)發(fā)(五):感應(yīng)(息屏/亮屏)管理
附GitHub源碼:MultimediaExplore
(相關(guān)資料圖)
首先看下音頻錄制跟播放效果簡(jiǎn)圖:
CSDN不支持本地視頻上傳,我就先上傳了一張截圖:
上面是錄音:長(zhǎng)按即可錄音,支持聲波動(dòng)畫(huà),右滑刪除等。支持錄制pcm、wav、mp3格式音頻。
下面是播放:點(diǎn)擊左邊揚(yáng)聲器icon,開(kāi)始播放剛錄制的本地音頻文件【也支持在線(xiàn)音頻播放】,支持播放進(jìn)度,支持切換播放模式(聽(tīng)筒/揚(yáng)聲器/耳機(jī))等。
一、音頻錄制權(quán)限:
無(wú)論在做開(kāi)發(fā)任何功能之前,總得先添加及申請(qǐng)相關(guān)權(quán)限,后續(xù)的工作才能正常進(jìn)行下去。音頻錄制所需權(quán)限如下,而且要在代碼中動(dòng)態(tài)申請(qǐng)這些敏感權(quán)限,同意后才能正常錄制:
二、錄音文件的配置:
通過(guò)第一節(jié)講到音頻的基礎(chǔ)概念可知,在錄制音頻前應(yīng)先進(jìn)行錄制的相關(guān)配置,它直接決定了錄音文件的音頻質(zhì)量、文件大小、音頻格式等。
/** * 錄音音頻的相關(guān)配置 */ private void initConfig() { recordConfig = new RecordConfig(); //采樣位寬 recordConfig.setEncodingConfig(AudioFormat.ENCODING_PCM_16BIT); //錄音格式 recordConfig.setFormat(RecordConfig.RecordFormat.MP3); // recordConfig.setFormat(RecordConfig.RecordFormat.WAV); //采樣頻率 recordConfig.setSampleRate(16000); String recordDir = String.format(Locale.getDefault(), "%s/Record/zhongyao/", Environment.getExternalStorageDirectory().getAbsolutePath()); //存儲(chǔ)目錄 recordConfig.setRecordDir(recordDir); AudioRecordManager.getInstance().setCurrentConfig(recordConfig); }
三、音頻錄制:
音頻錄制類(lèi)主要有兩個(gè)封裝類(lèi):分別是AudioRecorder 、AudioRecordManager。
AudioRecorder:主要是使用系統(tǒng)的AudioRecord來(lái)進(jìn)行錄音。并把錄制好的音頻文件進(jìn)行合并,轉(zhuǎn)碼等,生成我們所需的音頻文件。該文件是全局單例的,保證音頻錄制類(lèi)只有一個(gè)實(shí)例。
AudioRecordManager:對(duì)AudioRecorder的封裝管理,與外界交互均通過(guò)此類(lèi)來(lái)完成,包括錄音的各種生命周期控制調(diào)用等。減少了外界與AudioRecorder的直接交互,已達(dá)到對(duì)錄音類(lèi)的更好的管理,此類(lèi)也是一個(gè)全局單例類(lèi)。
1、錄音對(duì)象初始化:
這里主要根據(jù)之前的錄音配置,生成 bufferSizeInBytes【緩沖區(qū)字節(jié)大小】,和audioRecord對(duì)象。
/** * 創(chuàng)建默認(rèn)的錄音對(duì)象 */ public void prepareRecord() { // 獲得緩沖區(qū)字節(jié)大小 if (bufferSizeInBytes == 0) { bufferSizeInBytes = AudioRecord.getMinBufferSize(currentConfig.getSampleRate(), currentConfig.getChannelConfig(), currentConfig.getEncodingConfig()); } if (audioRecord == null) { audioRecord = new AudioRecord(AUDIO_INPUT, currentConfig.getSampleRate(), currentConfig.getChannelConfig(), currentConfig.getEncodingConfig(), bufferSizeInBytes); } audioRecordStatus = AudioRecordStatus.AUDIO_RECORD_PREPARE; }
2、錄制wav音頻文件:
wav音頻文件是無(wú)損的,所以音質(zhì)會(huì)接近原生,但也正是因?yàn)槭菬o(wú)損的,所以wav音頻文件幾乎沒(méi)有壓縮,相對(duì)來(lái)說(shuō)會(huì)比較大。
錄制wav音頻得先進(jìn)行錄制采用,獲得pcm文件,然后把pcm文件合并,最后再轉(zhuǎn)成wav音頻文件。
(1)開(kāi)始錄制pcm文件:
private void startPcmRecorder() { audioRecordStatus = AudioRecordStatus.AUDIO_RECORD_START; notifyState(); Logger.d(TAG, "開(kāi)始錄制 Pcm"); FileOutputStream fos = null; try { fos = new FileOutputStream(tmpFile); audioRecord.startRecording(); byte[] byteBuffer = new byte[bufferSizeInBytes]; while (audioRecordStatus == AudioRecordStatus.AUDIO_RECORD_START) { int end = audioRecord.read(byteBuffer, 0, byteBuffer.length); notifyData(byteBuffer); fos.write(byteBuffer, 0, end); fos.flush(); } audioRecord.stop(); files.add(tmpFile); if (audioRecordStatus == AudioRecordStatus.AUDIO_RECORD_STOP) { makeFile(); } else { Logger.d(TAG, "取消錄制..."); } } catch (Exception e) { Logger.e(e, TAG, e.getMessage()); notifyError("錄音失敗"); } finally { try { if (fos != null) { fos.close(); } } catch (IOException e) { e.printStackTrace(); } } if (audioRecordStatus != AudioRecordStatus.AUDIO_RECORD_PAUSE) { audioRecordStatus = AudioRecordStatus.AUDIO_RECORD_IDLE; notifyState(); Logger.d(TAG, "錄音結(jié)束"); } }
(2)合并生成的多個(gè)pcm文件:
/** * 合并pcm文件 */ private void mergePcmFile() { boolean mergeSuccess = mergePcmFiles(resultFile, files); if (!mergeSuccess) { notifyError("合并失敗"); } }
(3)將合并好的pcm文件轉(zhuǎn)成wav文件:
/** * 添加Wav頭文件 */ private void makeWav() { if (!FileUtil.isFile(resultFile) || resultFile.length() == 0) { return; } byte[] header = WavUtils.generateWavFileHeader((int) resultFile.length(), currentConfig.getSampleRate(), currentConfig.getChannelCount(), currentConfig.getEncoding()); WavUtils.writeHeader(resultFile, header); }
3、錄制MP3音頻文件
相比WAV音頻文件而言,MP3音頻文件,就更加常見(jiàn),商業(yè)上使用的也比較多,就是因?yàn)镸P3音頻時(shí)經(jīng)過(guò)壓縮的,文件大小只有WAV的十二分之一,但是音質(zhì)上幾乎沒(méi)有較大的差異性。當(dāng)對(duì)音質(zhì)沒(méi)有極高要求的情況下,如錄音文件,MP3格式是極好的選擇。
(1)開(kāi)始錄制音頻緩存:
這里有開(kāi)啟一個(gè)線(xiàn)程Mp3EncodeThread,將錄音產(chǎn)生的字節(jié)數(shù)組byteBuffer不斷的進(jìn)行編解碼生成MP3文件。
private void startMp3Recorder() { audioRecordStatus = AudioRecordStatus.AUDIO_RECORD_START; notifyState(); try { audioRecord.startRecording(); short[] byteBuffer = new short[bufferSizeInBytes]; while (audioRecordStatus == AudioRecordStatus.AUDIO_RECORD_START) { int end = audioRecord.read(byteBuffer, 0, byteBuffer.length); if (mp3EncodeThread != null) { mp3EncodeThread.addChangeBuffer(new Mp3EncodeThread.ChangeBuffer(byteBuffer, end)); } notifyData(ByteUtils.toBytes(byteBuffer)); } audioRecord.stop(); } catch (Exception e) { Logger.e(e, TAG, e.getMessage()); notifyError("錄音失敗"); } if (audioRecordStatus != AudioRecordStatus.AUDIO_RECORD_PAUSE) { if (audioRecordStatus == AudioRecordStatus.AUDIO_RECORD_CANCEL) { deleteMp3Encoded(); } else { stopMp3Encoded(); } } else { Logger.d(TAG, "暫停"); } }
(2)MP3音頻編解碼:
Android原生的音頻錄制,支持直接生成WAV文件,但其實(shí)是不支持直接生成MP3文件的。這里對(duì)應(yīng)MP3編解碼,主要用到了開(kāi)源的 libmp3lame.so 這個(gè)音頻編解碼庫(kù)。以下是lame編解碼方法及Mp3Encoder類(lèi):
MP3編解碼方法:
private void lameData(ChangeBuffer changeBuffer) { if (changeBuffer == null) { return; } short[] buffer = changeBuffer.getData(); int readSize = changeBuffer.getReadSize(); if (readSize > 0) { int encodedSize = Mp3Encoder.encode(buffer, buffer, readSize, mp3Buffer); if (encodedSize < 0) { Logger.e(TAG, "Lame encoded size: " + encodedSize); } try { os.write(mp3Buffer, 0, encodedSize); } catch (IOException e) { Logger.e(e, TAG, "Unable to write to file"); } } }
Mp3Encoder類(lèi):
public class Mp3Encoder { static { System.loadLibrary("mp3lame"); } public native static void close(); public native static int encode(short[] buffer_l, short[] buffer_r, int samples, byte[] mp3buf); public native static int flush(byte[] mp3buf); public native static void init(int inSampleRate, int outChannel, int outSampleRate, int outBitrate, int quality); public static void init(int inSampleRate, int outChannel, int outSampleRate, int outBitrate) { init(inSampleRate, outChannel, outSampleRate, outBitrate, 7); }}
(3)生成libmp3lame.so:
本項(xiàng)目提供的源碼中有l(wèi)ame的jni源碼,如果想生成libmp3lame.so文件,供自己的項(xiàng)目使用,那么需要對(duì)Mp3Encoder.c 和Mp3Encoder.h文件進(jìn)行修改,然后通過(guò)ndk build 生成該so文件。
修改的內(nèi)容主要是把文件中的Mp3Encoder路徑改成自己項(xiàng)目中的Mp3Encoder的路徑,否則會(huì)找不到相關(guān)的native方法。
另外一般情況下,cpu類(lèi)型支持 armeabi-v7a 、arm64-v8a 兩種即可,如果想支持其他的可在Application.mk中添加。
上面文件修改完畢,通過(guò)ndk-build指令即可編譯生成對(duì)應(yīng)的 libmp3lame.so 文件。
將so不同CPU類(lèi)型的文件放置 jniLibs 下,或者通過(guò)sourceSets配置的路徑下,如:
sourceSets.main { jni.srcDirs = []//disable automatic ndk-build call jniLibs.srcDirs = ["libs"] }
即可進(jìn)行MP3音頻格式的錄制。
四、音頻錄制管理【AudioRecordManager】:
通過(guò)全局單例模式的AudioRecorderManager與業(yè)務(wù)進(jìn)行交互,即保證了音頻錄制實(shí)例的單一性,又能較好的對(duì)音頻生命周期等進(jìn)行較好的管理。
/** * Create by zhongyao on 2021/8/18 * Description:音頻錄制管理類(lèi) */public class AudioRecordManager { private static final String TAG = "AudioRecordManager"; private AudioRecordManager() { } public static AudioRecordManager getInstance() { return AudioRecordManagerHolder.instance; } public static class AudioRecordManagerHolder { public static AudioRecordManager instance = new AudioRecordManager(); } public void setCurrentConfig(RecordConfig recordConfig) { AudioRecorder.getInstance().setCurrentConfig(recordConfig); } public RecordConfig getCurrentConfig() { return AudioRecorder.getInstance().getCurrentConfig(); } /** * 錄音狀態(tài)監(jiān)聽(tīng)回調(diào) */ public void setRecordStateListener(RecordStateListener listener) { AudioRecorder.getInstance().setRecordStateListener(listener); } /** * 錄音數(shù)據(jù)監(jiān)聽(tīng)回調(diào) */ public void setRecordDataListener(RecordDataListener listener) { AudioRecorder.getInstance().setRecordDataListener(listener); } /** * 錄音可視化數(shù)據(jù)回調(diào),傅里葉轉(zhuǎn)換后的頻域數(shù)據(jù) */ public void setRecordFftDataListener(RecordFftDataListener recordFftDataListener) { AudioRecorder.getInstance().setRecordFftDataListener(recordFftDataListener); } /** * 錄音文件轉(zhuǎn)換結(jié)束回調(diào) */ public void setRecordResultListener(RecordResultListener listener) { AudioRecorder.getInstance().setRecordResultListener(listener); } /** * 錄音音量監(jiān)聽(tīng)回調(diào) */ public void setRecordSoundSizeListener(RecordSoundSizeListener listener) { AudioRecorder.getInstance().setRecordSoundSizeListener(listener); } public void setStatus(AudioRecordStatus curAudioRecordStatus) { switch (curAudioRecordStatus) { case AUDIO_RECORD_IDLE: break; case AUDIO_RECORD_PREPARE: AudioRecorder.getInstance().prepareRecord(); break; case AUDIO_RECORD_START: AudioRecorder.getInstance().startRecord(); break; case AUDIO_RECORD_PAUSE: AudioRecorder.getInstance().pauseRecord(); break; case AUDIO_RECORD_STOP: AudioRecorder.getInstance().stopRecord(); break; case AUDIO_RECORD_CANCEL: AudioRecorder.getInstance().cancelRecord(); break; case AUDIO_RECORD_RELEASE: AudioRecorder.getInstance().releaseRecord(); break; default: break; } } public AudioRecordStatus getStatus() { return AudioRecorder.getInstance().getAudioRecordStatus(); } public String getAudioPath() { return AudioRecorder.getInstance().getAudioPath(); }}
標(biāo)簽: 音頻文件
相關(guān)推薦:
精彩放送:
- []環(huán)球今亮點(diǎn)!美原油交易策略:歐美銀行業(yè)危機(jī)擔(dān)憂(yōu)籠罩市場(chǎng),油價(jià)創(chuàng)逾十五個(gè)月新低
- []環(huán)球快資訊:廣州從化太平鎮(zhèn)4宗商務(wù)金融用地使用權(quán)整體拍賣(mài)流拍 變賣(mài)價(jià)約1.4億
- []國(guó)信期貨日評(píng):原油持續(xù)下挫,燃料油走弱,期螺高開(kāi)低走
- []環(huán)球微動(dòng)態(tài)丨遼寧:1-2月房地產(chǎn)開(kāi)發(fā)投資下降16.6%
- []3月20日姚記科技漲停分析:游戲,手游,獨(dú)角獸概念熱股
- []最資訊丨封神榜妲己封的什么神?關(guān)于妲己的故事是什么?
- []廣州:2023年計(jì)劃安排建設(shè)用地供應(yīng)總量3203公頃
- []播報(bào):汩羅是湖南哪個(gè)市?汩羅資料介紹?
- []全球熱推薦:格力博:公司未在硅谷銀行開(kāi)戶(hù),也沒(méi)有存款
- []每日快訊!重慶市東坡商業(yè)廣場(chǎng)有限公司金融債權(quán)首拍流拍 當(dāng)前價(jià)1.25億元
- []]每日看點(diǎn)!qq個(gè)性說(shuō)說(shuō)怎么寫(xiě)?qq個(gè)性說(shuō)說(shuō)有哪些?
- []【世界新要聞】3月20日上海電影漲停分析:影視,上海國(guó)企改革,國(guó)企改革概念熱股
- []全球速看:3月20日中天科技漲停分析:銅箔/覆銅板,儲(chǔ)能,風(fēng)電概念熱股
- []鳳凰傳媒:公司近期生產(chǎn)經(jīng)營(yíng)正常
- []環(huán)球?qū)崟r(shí):西安曲江文化控股10億元中期票據(jù)將付息 利率5.20%
- []焦點(diǎn)速訊:什么是機(jī)關(guān)行政管理?行政機(jī)關(guān)管理是指什么?
- []當(dāng)前時(shí)訊:【風(fēng)口研報(bào)】超預(yù)期出現(xiàn)!AIGC三大核心概念曝光 又有大利好!特高壓也迎來(lái)風(fēng)口
- []每日觀點(diǎn):笛子高音上不去的原因_高音上不去怎么辦
- []焦點(diǎn)滾動(dòng):光明房產(chǎn)8億元中期票據(jù)完成發(fā)行,利率3.73%
- []全球要聞:【中指快評(píng)】無(wú)錫出臺(tái)《關(guān)于進(jìn)一步促進(jìn)房地產(chǎn)市場(chǎng)健康發(fā)展若干措施的通知》
- []貝殼研究院:3月首套房貸利率微降 銀行放款加速
- []當(dāng)前最新:2月鄭州全市商品住房銷(xiāo)售12583套,135.71萬(wàn)平方米,環(huán)比增長(zhǎng)118.25%
- []新資訊:共同藥業(yè):截只2022年2月28日公司股東人數(shù)為17015人
- []華熙LIVE·五棵松入選第二批國(guó)家級(jí)旅游休閑街區(qū)名單
- []熱點(diǎn)聚焦:中國(guó)建筑興業(yè):2022年實(shí)現(xiàn)營(yíng)業(yè)收入76.68億港元
- []當(dāng)前頭條:徐工機(jī)械:經(jīng)核實(shí),2023年2月份公司下屬公司徐州徐工液壓件有限公司不存在污染物排放超標(biāo)情況
- []信息:分期樂(lè)是正規(guī)借款平臺(tái)嗎
- []社保卡里面的錢(qián)可以取出來(lái)嗎
- []【世界獨(dú)家】360借條是正規(guī)的嗎
- []觀點(diǎn):緯景儲(chǔ)能A輪融資超6億
- []多路資金集結(jié)進(jìn)場(chǎng) 機(jī)構(gòu)看好經(jīng)濟(jì)復(fù)蘇主線(xiàn)
- []微眾銀行企業(yè)貸款可靠嗎
- []焦點(diǎn)關(guān)注:養(yǎng)老保險(xiǎn)個(gè)人一年多少錢(qián)
- []天天微動(dòng)態(tài)丨江蘇無(wú)錫:優(yōu)化住房限購(gòu)范圍 適當(dāng)調(diào)整限購(gòu)區(qū)域
- []財(cái)面兒丨綠城管理控股2022年歸母凈利潤(rùn)7.45億元 同比增長(zhǎng)31.7%
- []環(huán)球短訊!和林微納:截至2023年3月10日公司股東數(shù)為3621
- []天天新動(dòng)態(tài):龍建股份:截至目前公司尚未在俄羅斯參與相關(guān)項(xiàng)目。請(qǐng)以公司的信息披露為準(zhǔn)
- []潤(rùn)和軟件:請(qǐng)您參照互動(dòng)易上公司對(duì)前述類(lèi)似問(wèn)題的
- []【BT金融分析師】鐵礦石三巨頭之一力拓集團(tuán)被機(jī)構(gòu)看好,分析師聚焦其鋰礦業(yè)務(wù)
- []銀行貸款利率表
- []工行跨行轉(zhuǎn)賬手續(xù)費(fèi)
- []全球動(dòng)態(tài):恒大清盤(pán)呈請(qǐng)聆訊再獲延期 行政總裁肖恩回應(yīng)
- []環(huán)球觀察:一張圖:黃金原油外匯股指"樞紐點(diǎn)+多空占比"一覽(2023/03/20周一)
- []天天快看點(diǎn)丨祥明智能:通信系統(tǒng)是公司重要的行業(yè)應(yīng)用領(lǐng)域,公司的風(fēng)機(jī)應(yīng)用于通信基站設(shè)備
- []天天要聞:平安保險(xiǎn)客服24小時(shí)電話(huà)
- []全球今熱點(diǎn):里夫斯35+6+6湖人力克魔術(shù) 濃眉15+11班凱羅21分
- []股票私募也卷起來(lái)了!百億私募開(kāi)打價(jià)格戰(zhàn) 只收千分之五管理費(fèi) 后市怎么看?
- []要聞速遞:五一出境跟團(tuán)游已經(jīng)進(jìn)入預(yù)訂高峰,攜程:海外跟團(tuán)游預(yù)訂上漲167%
- []【天天快播報(bào)】眾安保險(xiǎn)600萬(wàn)醫(yī)療保險(xiǎn)是真的嗎
- []礦商稱(chēng)未來(lái)幾個(gè)月金價(jià)將保持強(qiáng)勢(shì),今年能達(dá)到2000美元!
- []【BT金融分析師】名創(chuàng)優(yōu)品在海外加快開(kāi)店,分析師稱(chēng)警惕其庫(kù)存積壓風(fēng)險(xiǎn)
- []今日精選:【東海期貨3月20日產(chǎn)業(yè)鏈日?qǐng)?bào)】能化篇:等待聯(lián)儲(chǔ)決策,市場(chǎng)繼續(xù)承壓
- []全球報(bào)道:良品鋪?zhàn)佣宋缍Y盒團(tuán)購(gòu)新品大會(huì):過(guò)節(jié)送禮送良品,引領(lǐng)高品質(zhì)禮盒市場(chǎng)熱銷(xiāo)
- []通宇通訊:公司暫未有相關(guān)產(chǎn)品
- []今日最新!光線(xiàn)傳媒:影片的票房收入和成本會(huì)在影片上映后一并確認(rèn)
- []世紀(jì)佳緣緊貼時(shí)代發(fā)展需求 領(lǐng)跑婚戀市場(chǎng)
- []環(huán)球快報(bào):湖南裕能:這個(gè)問(wèn)題要問(wèn)電池廠(chǎng)比較好
- []中信銀行客服電話(huà)
- []建行客服95533怎么轉(zhuǎn)人工
- []向往詩(shī)和遠(yuǎn)方的中產(chǎn)群體,愿意為小而精的房車(chē)旅行買(mǎi)單嗎?
- []世界熱點(diǎn)!如何自學(xué)微積分?自學(xué)微積分的方法有哪些?
- []五險(xiǎn)一金指什么
- []資訊推薦:微店是什么?微店有哪些陣營(yíng)?
- []每日消息!怎樣建造釣魚(yú)場(chǎng)?建造釣魚(yú)場(chǎng)的方法有哪些?
- []花唄逾期暫時(shí)無(wú)力還款應(yīng)該怎么解決
- []全球熱文:降準(zhǔn)是什么意思
- []【速看料】江西興國(guó)縣屬于哪個(gè)市?江西興國(guó)縣資料介紹?
- []奧斯汀里弗斯為什么是白人?奧斯汀里弗斯資料介紹?
- []全球新動(dòng)態(tài):名門(mén)劫的演員有哪些?名門(mén)劫講述了什么故事?
- []當(dāng)前焦點(diǎn)!山西省洪桐縣有哪些鄉(xiāng)鎮(zhèn)?山西省洪桐縣鄉(xiāng)鎮(zhèn)資料介紹?
- []世界觀點(diǎn):魚(yú)子醬眼霜有什么作用?魚(yú)子醬眼霜有哪些功效?
- []硬盤(pán)當(dāng)前待映射扇區(qū)警告怎么修復(fù)?硬盤(pán)當(dāng)前待映射扇區(qū)警告的修復(fù)方法?
- []天天要聞:喜出望外的意思是什么?喜出望外出處是哪里?
- []【環(huán)球熱聞】遙望科技:您也可以登錄公司簽約合作明星、主播的直播間觀看
- []中國(guó)廣核:1)根據(jù)在建項(xiàng)目進(jìn)度,2023年上半年,防城港3號(hào)機(jī)組將投產(chǎn),投產(chǎn)后公司裝機(jī)增長(zhǎng)約4%
- []全球信息:3月LPR報(bào)價(jià):1年期與5年期以上均維持不變
- []當(dāng)前快報(bào):致敬商辦新勢(shì)力 中國(guó)寫(xiě)字樓產(chǎn)業(yè)園發(fā)展論壇年會(huì)在京舉辦
- []中公教育:子公司以自有資產(chǎn)抵押向銀行申請(qǐng)貸款
- []每日看點(diǎn)!藍(lán)天燃?xì)猓汗局饕獜氖潞幽鲜?nèi)的管道天然氣業(yè)務(wù)、城市燃?xì)獾葮I(yè)務(wù)
- []環(huán)球熱議:弩針毒殺家犬、野狗4000余斤 檢察機(jī)關(guān)提起刑事附帶民事公益訴訟
- []酒旅市場(chǎng)“春風(fēng)吹遍”,如何抓住復(fù)蘇商機(jī)?
- []世界熱文:中信建投期貨3月20日早間交易策略
- []【環(huán)球時(shí)快訊】房地產(chǎn)市場(chǎng)出現(xiàn)積極變化
- []每日消息!廣州酒家:1.公司每季度公布的經(jīng)銷(xiāo)商數(shù)量不包含餅屋店和餐飲店
- []今日熱聞!獲取保租房申請(qǐng)資格要收費(fèi)?別信
- []天天快消息!惠云鈦業(yè):目前公司生產(chǎn)經(jīng)營(yíng)一切正常,一季報(bào)業(yè)績(jī)請(qǐng)留意后續(xù)發(fā)布的一季度報(bào)告
- []星網(wǎng)銳捷:公司會(huì)關(guān)注行業(yè)的發(fā)展情況并根據(jù)自身的實(shí)際情況制定相應(yīng)的發(fā)展戰(zhàn)略
- []環(huán)球聚焦:陳光明最新發(fā)聲!投資要尊重常識(shí) 敢于質(zhì)疑 在中國(guó)做價(jià)值投資行得通!
- []國(guó)泰君安:超預(yù)期降準(zhǔn)的三點(diǎn)理解 對(duì)沖流動(dòng)性波動(dòng)
- []環(huán)球熱點(diǎn)!儲(chǔ)能站上風(fēng)口 一場(chǎng)儲(chǔ)能大會(huì)厘清行業(yè)發(fā)展未來(lái)
- []每日看點(diǎn)!中泰證券:銀行股核心邏輯是宏觀經(jīng)濟(jì) 堅(jiān)持確定性增長(zhǎng)和修復(fù)邏輯兩條主線(xiàn)
- []聚焦用戶(hù)側(cè)!索比儲(chǔ)能網(wǎng)“新能源+儲(chǔ)能”協(xié)同發(fā)展論壇即將舉辦!
- []今日聚焦!新能源配儲(chǔ)技術(shù)導(dǎo)則出臺(tái)!儲(chǔ)能產(chǎn)業(yè)發(fā)展邁向標(biāo)準(zhǔn)化、規(guī)模化
- []停牌房企的復(fù)牌選擇題
- []天天速遞!春季眼屎多?可能是眼睛感染了!緩解方法在這~
- []每日短訊:外匯交易提醒:瑞銀以30億瑞郎收購(gòu)瑞信,避險(xiǎn)降溫美元短線(xiàn)或承壓
- []視焦點(diǎn)訊!川恒股份:公司目前已建成10萬(wàn)噸/年磷酸鐵產(chǎn)線(xiàn)且已投入生產(chǎn),另有10萬(wàn)噸/年磷酸鐵產(chǎn)線(xiàn)正在建設(shè)中
- []看點(diǎn):恒大在深圳最值錢(qián)的項(xiàng)目,被這家央企“接盤(pán)”后取消了保障房
- []富瑞特裝:公司近期LNG車(chē)用供氣系統(tǒng)產(chǎn)品的市場(chǎng)形勢(shì)有所回暖
- 寧波阪急宇宙之旅,漫步璀璨星河——寧波阪急超全樓層品牌分布實(shí)錄
- vuejs之Vue2.x中的父組件數(shù)據(jù)傳遞至子組件的方法
- 全球頭條:cad怎么導(dǎo)出jpg圖片格式?cad導(dǎo)出jpg圖片格式的方法
- Android音頻開(kāi)發(fā)及錄音文件的配置
- 聚焦:波爾手表算幾類(lèi)表?波爾手表有哪些特點(diǎn)?
- 家用垃圾桶怎么選購(gòu)?家用垃圾桶選購(gòu)技巧是什么?
- 當(dāng)前速讀:雙魚(yú)座是什么月份?雙魚(yú)座簡(jiǎn)介?
- 今熱點(diǎn):?jiǎn)⒐槭裁床恍諓?ài)新覺(jué)羅?啟功不姓愛(ài)新覺(jué)羅的原因有哪些?
- 六個(gè)字的成語(yǔ)有哪些?六個(gè)字的成語(yǔ)大全?
- 【每日一練】什么是預(yù)編譯?何時(shí)需要編譯?
- B站注冊(cè)資本增幅400%至5億 目前由陳睿全資持股
- 光源資本出任獨(dú)家財(cái)務(wù)顧問(wèn) 沐曦集成電路10億元A輪融資宣告完成
- 巨輪智能2021年上半年?duì)I收11.24億元 期內(nèi)研發(fā)費(fèi)用投入增長(zhǎng)19.05%
- 紅棗期貨尾盤(pán)拉升大漲近6% 目前紅棗市場(chǎng)總庫(kù)存約30萬(wàn)噸
- 嘉銀金科發(fā)布2021年Q2財(cái)報(bào) 期內(nèi)凈利潤(rùn)達(dá)1.27億元同比增長(zhǎng)208%
- 成都銀行2021上半年凈利33.89億元 期內(nèi)實(shí)現(xiàn)營(yíng)收同比增長(zhǎng)17.27億元
- 汽車(chē)之家發(fā)布2021年第二季度業(yè)績(jī) 期內(nèi)新能源汽車(chē)品牌收入增長(zhǎng)238%
- 中信銀行上半年實(shí)現(xiàn)凈利潤(rùn)290.31億元 期末不良貸款余額706.82億元
- 光伏概念掀起漲停潮交易價(jià)格創(chuàng)新高 全天成交額達(dá)1.29億元
- 上半年生物藥大增45% 關(guān)鍵財(cái)務(wù)指標(biāo)好轉(zhuǎn)營(yíng)收賬款持續(xù)下降
- 世界聚焦:恒大在深圳最值錢(qián)的項(xiàng)目被招商“接盤(pán)”后,取消了保障房……
- 天天速訊:爆雷火燒聯(lián)營(yíng) 房企忙著分家
- 全球球精選!差旅管理的集中支付,離真正實(shí)現(xiàn)資金閉環(huán)還有多遠(yuǎn)?
- 天天關(guān)注:小鵬面臨掉隊(duì)危機(jī),何小鵬被卷到一周干七天活
- 世界看點(diǎn):日出江花紅勝火
- 全球快看點(diǎn)丨橫跨數(shù)十公里!澳大利亞一條河驚現(xiàn)數(shù)百萬(wàn)條死魚(yú),已是第三次發(fā)生
- 紅星美凱龍員工購(gòu)股計(jì)劃第二、三期存續(xù)期延長(zhǎng)至2024年1月28日
- 新資訊:稻香控股預(yù)期2022年歸母凈虧損擴(kuò)大為1.4億至1.5億港元
- 世界看熱訊:星空華文預(yù)期2022年溢利虧轉(zhuǎn)盈 凈溢利1.1億元至1.25億元
- 天天新動(dòng)態(tài):福州連江縣2023年首宗土地錄17輪角逐 成交價(jià)為1.46億元
- 華大酒店2022年錄得收入4.39億港元 歸母凈利潤(rùn)5.93億港元
- 天天熱消息:福州數(shù)字內(nèi)容產(chǎn)業(yè)園31%股權(quán)被掛牌 項(xiàng)目總建面12.4萬(wàn)平米
- 銀行活期存款利息
- 全球速讀:順豪控股2022年歸母凈利潤(rùn)2.58億港元 按年增加2.28億港元
- 【當(dāng)前獨(dú)家】麗豐控股預(yù)期中期歸母凈虧損擴(kuò)大為1.7億港元至1.8億港元
- 當(dāng)前訊息:香港小輪2022年除稅后綜合溢利12.99億港元 同比增加999%
- 全球信息:廣州南沙發(fā)放惠民補(bǔ)貼1千萬(wàn)元 預(yù)計(jì)帶動(dòng)文旅體消費(fèi)近1億元
- 每日動(dòng)態(tài)!TOP TOY的一些補(bǔ)錄!【2023-3-19積木新品情報(bào)】
- 全球微動(dòng)態(tài)丨凈利飆漲500%!又一光伏跨界者成功逆襲!
- 【全球新要聞】各銀行定期存款利率
- 天天最新:工行利率2022存款最新公告
- 天天新資訊:重磅利空!中國(guó)光伏或遭遇“倒春寒”
- 世界今頭條!廣發(fā)策略:“破曉”行情等待“4月決斷” 主線(xiàn)逐漸明朗
- 從店長(zhǎng)到錦江酒店(中國(guó)區(qū))執(zhí)行副總裁,一位酒店人的17年
- 聯(lián)合國(guó)或?qū)⒏母铮?guó)力挺日本當(dāng)常任理事國(guó),美國(guó)這回卻失聲了
- 廣東華興銀行:以?xún)?yōu)質(zhì)綜合金融服務(wù)助力廣東高質(zhì)量發(fā)展
- 住房公積金個(gè)人怎么提取
- kpi是什么意思
- 每日訊息!微粒貸怎么開(kāi)通
- 環(huán)球熱資訊!一般車(chē)險(xiǎn)都買(mǎi)那些
- 當(dāng)前時(shí)訊:退貨的時(shí)候千萬(wàn)別選擇退運(yùn)費(fèi)會(huì)影響買(mǎi)家嗎
- 信息:經(jīng)濟(jì)日?qǐng)?bào)金觀平:壓實(shí)資本市場(chǎng)“看門(mén)人”責(zé)任
- 什么是意外險(xiǎn)
- 熱門(mén):2023三年期大額存單五大銀行利率
- 賽象科技:公司未參與該業(yè)務(wù)工程建設(shè)
- 天天視點(diǎn)!lpr利率是什么意思
- 滴水貸是正規(guī)平臺(tái)嗎
- 當(dāng)前頭條:道路救援是什么
- 每日消息!什么叫股權(quán)
- 樂(lè)花卡借錢(qián)是正規(guī)平臺(tái)嗎
- 財(cái)報(bào)金選丨龍湖的而立之年:穩(wěn)健的基本盤(pán)與看得見(jiàn)的未來(lái)
- 房屋貸款怎么計(jì)算
- 【天天速看料】太平洋保險(xiǎn)電話(huà)
- 環(huán)球微速訊:抓住商旅復(fù)蘇機(jī)遇,如何提升企業(yè)和酒店的連接效率?
- 世界熱議:xd股票是什么意思
- 世界快看點(diǎn)丨單片機(jī)仿真軟件Proteus最新中文版,Proteus軟件安裝激活教程下載
- 世界新動(dòng)態(tài):什么叫躉交
- 焦點(diǎn)播報(bào):意外險(xiǎn)包含哪些
- 焦點(diǎn)快報(bào)!etc怎么辦理
- 【獨(dú)家焦點(diǎn)】通貨膨脹什么意思
- 世界快消息!炒股開(kāi)戶(hù)流程
- 一般車(chē)險(xiǎn)買(mǎi)哪幾種
- 每日焦點(diǎn)!網(wǎng)上怎么購(gòu)買(mǎi)車(chē)險(xiǎn)便宜
- 全國(guó)2021年gdp總量排名 各省gdp一覽
- 全球熱消息:海風(fēng)龍頭下周解禁市值超270億,解禁股名單來(lái)了!
- 環(huán)球熱議:銀行卡可以跨行轉(zhuǎn)賬嗎
- 天天速看:360借條正規(guī)嗎,合法嗎?
- 環(huán)球熱推薦:人民幣貶值是什么意思啊,貨幣的價(jià)值下降
- 高溫抗旱概念股有哪些,高溫抗旱優(yōu)質(zhì)股票盤(pán)點(diǎn)
- 即時(shí)焦點(diǎn):個(gè)人賬戶(hù)養(yǎng)老金是什么意思,是退休以后享受的養(yǎng)老積蓄
- 環(huán)球觀天下!長(zhǎng)城歌曲黃家駒歌詞_長(zhǎng)城歌曲黃家駒
- 世界實(shí)時(shí):龍湖30年,沒(méi)有浪費(fèi)任何1次危機(jī)
- 基金到期怎么贖回
- 深圳惠民保險(xiǎn)怎么買(mǎi)
- 醫(yī)療險(xiǎn)是什么
- 支付寶聚合二維碼如何申請(qǐng)
- 中國(guó)十大養(yǎng)老企業(yè),優(yōu)質(zhì)龍頭股盤(pán)點(diǎn)
- 【環(huán)球熱聞】農(nóng)行ah股上市時(shí)間
- 全球?qū)崟r(shí):如何選擇定投基金產(chǎn)品
- 天天熱訊:騰訊上市時(shí)間
- 世界快看點(diǎn)丨建行賬戶(hù)管理費(fèi),也稱(chēng)為小額賬戶(hù)管理費(fèi)
- 環(huán)球視點(diǎn)!用支付寶登錄淘寶為什么被限制登錄怎么辦?
- 金價(jià)會(huì)持續(xù)下跌嗎
- 每日快訊!車(chē)險(xiǎn)一般買(mǎi)哪幾種 車(chē)險(xiǎn)需要買(mǎi)哪些
- 打新股票的基金有哪些 打新股的基金有哪幾個(gè)
- 每日時(shí)訊!中國(guó)最牛的基金經(jīng)理有哪些人
- 每日短訊:新版100元人民幣真假鑒別
- 就在3月23日,十字路口的物業(yè)服務(wù)力量即將揭曉
- 當(dāng)前通訊!所羅門(mén)格蘭迪紅軍版_所羅門(mén)格蘭迪
- 當(dāng)前熱議!大學(xué)貸款需要什么條件才可以貸款,有以下7個(gè)條件
- 農(nóng)業(yè)銀行學(xué)費(fèi)網(wǎng)上繳費(fèi)怎么交
- 熱頭條丨民生銀行借記卡積分怎么兌換
- 基本養(yǎng)老金是什么意思
- 天天快報(bào)!2021全國(guó)gdp排名,各城市g(shù)dp一覽
- 每日視點(diǎn)!挽救民族危亡的斗爭(zhēng)ppt_挽救
- 時(shí)訊:賣(mài)出開(kāi)倉(cāng)和賣(mài)出平倉(cāng)有啥區(qū)別
- 今日熱文:怎么選基金
- 當(dāng)前關(guān)注:st股票有哪些,st股票一覽
- 全球新消息丨脫歐是什么意思 脫歐的含義是什么
- 【天天時(shí)快訊】股票熔斷機(jī)制是什么意思
- 環(huán)球熱頭條丨第二年的車(chē)保險(xiǎn)怎么買(mǎi)
- 環(huán)球即時(shí)看!房貸利率轉(zhuǎn)換LPR是什么意思
- 天天報(bào)道:2022個(gè)人所得稅怎么退稅步驟,有以下5個(gè)步驟
- 焦點(diǎn)速讀:微信怎么領(lǐng)取疫情補(bǔ)貼2000,有以下五個(gè)領(lǐng)取流程
- 全球頭條:美加息對(duì)中國(guó)股市影響
- 微頭條丨螞蟻金服最大股東是誰(shuí) 螞蟻金服里的第一大股東是誰(shuí)
- 股票價(jià)格計(jì)算公式 股票價(jià)格的計(jì)算方式是什么
- 短線(xiàn)股票推薦 短線(xiàn)的股票有哪些
- 環(huán)球新消息丨15年自費(fèi)買(mǎi)養(yǎng)老保險(xiǎn)劃算嗎,劃算
- 企業(yè)基金是什么 一項(xiàng)專(zhuān)用基金