Android播放聊天語音訊息幀動畫問題
本文轉自http://blog.csdn.net/minyou_1314/article/details/25230165
專案中遇到的問題:
需求: 做一個聊天頁面,要求播放語音時,有一個類似於喇叭的動畫,從小到大不停迴圈,語音播放完,動畫停止在第一幀。當點選正在播放的語音時,語音停止,動畫回覆到第一幀(回覆到第一幀是難點)
實現:用Frame Animation
可以在Java程式碼中新增每一幀的動畫,也可以建立動畫布局,我用的是建立動畫布局。
1.建立動畫布局,在drawable資料夾下建立佈局imv_anim_bg.xml(名字自己定義):
- <?xml version="1.0" encoding="utf-8"?>
- <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
- android:oneshot="false">
- <item android:drawable="@drawable/communicaiton_sound_self_03" android:duration="500"/>
- <item android:drawable="@drawable/communicaiton_sound_self_01" android:duration="500"/>
- <item android:drawable="@drawable/communicaiton_sound_self_02" android:duration="500"/>
- <item android:drawable="@drawable/communicaiton_sound_self_03" android:duration="500"/>
- </animation-list>
解釋一下:android:oneshot="false" false:迴圈播放動畫, true: 只播放一次
2.在佈局中新增ImageView控制元件,設定其背景為上述動畫。
3.在java程式碼中實現動畫的播放,停止,回覆第一幀:
獲得動畫例項;
- anim = (AnimationDrawable) imv.getBackground(); // anim 為AnimationDrawable物件,imv為ImageView物件,就是要實現動畫效果的ImageView
動畫播放:
- anim.start();
- anim.stop(); // stop方法實際上只是動畫的暫停方法,當呼叫此方法時,動畫會停止到當前正在播放的那一幀,並不會停止到第一幀,當在此方法之後呼叫start()方法,會繼續下一幀播放
動畫恢復到第一幀動畫:
- anim.selectDrawable(0); //選擇當前動畫的第一幀,然後停止
- anim.stop();
討論:
動畫恢復到第一幀:
在專案是現實時,剛開始用的方法是anim.setVisible(true,true); 檢視文件發現,setVisible方法的第二個引數是reset,因此設定其為true,目的是實現anim的重置,此方法可用,但是在之後的測試中發現在Lenovo等手機中,系統並不支援此方法。
在之後的調查中發現上述返回第一幀的方法,目前沒有發現不支援此方法的手機
相關文章
- Android MediaCodec硬解碼AAC音訊檔案(實時AAC音訊幀)並播放Android音訊
- CSS動畫效果——語音播放小喇叭CSS動畫
- android 音訊播放 SoundPoolAndroid音訊
- Android音視訊之MediaPlayer音視訊播放Android
- Android 幀動畫使用Android動畫
- 訊息語音播報,微信語音自動播放,有點兒意思,可以看看這個應用
- AVFoundation 文字轉語音和音訊錄製 播放音訊
- Android音訊實時傳輸與播放(四):原始碼下載(問題更新)Android音訊原始碼
- IM即時通訊聊天社交APP VX 聊天語音視訊系統APP
- Android備忘錄《幀動畫》Android動畫
- Android開發之幀動畫Android動畫
- 06.Android之訊息機制問題Android
- 視音訊播放音訊
- Android 動畫詳解:屬性動畫、View 動畫和幀動畫Android動畫View
- Android動畫效果之Frame Animation(逐幀動畫)Android動畫
- iOS 收款推送訊息語音播報iOS
- 解決flutter中webview視訊流播放Android正常,ios下有聲音沒影像問題FlutterWebViewAndroidiOS
- Android 音視訊開發 - 使用AudioTrack播放音訊Android音訊
- iOS開發:音訊播放、錄音、視訊播放、拍照、視訊錄製iOS音訊
- Android 幀動畫打造動態ImageViewAndroid動畫View
- View動畫、幀動畫View動畫
- iOS 9音訊應用播放音訊之iOS 9音訊播放進度iOS音訊
- 訊息粘包 和 訊息不完整 問題
- IM 聊天教程:傳送圖片 / 視訊 / 語音 / 表情
- Android 播放raw資料夾下音訊檔案Android音訊
- Android音訊開發之AudioTrack實時播放Android音訊
- iOS開發系列--音訊播放、錄音、視訊播放、拍照、視訊錄製(轉)iOS音訊
- 語音處理加窗分幀
- Android端實現多人音視訊聊天應用(一)Android
- iOS AVAudioPlayer(音訊播放)iOS音訊
- hqplayer pro 4,音訊播放音訊
- Flutter(十) 音訊+影片播放Flutter音訊
- Unity幀動畫Unity動畫
- Android本地音樂播放Android
- FFmpeg打造Android萬能音訊播放器總結Android音訊播放器
- iOS 9音訊應用播放音訊之控制播放速度iOS音訊
- 火爆的音訊聊天應用Clubhouse音訊恐洩露音訊
- 最棒的開源 Android 應用:聊天、影象、音訊等等Android音訊