All Projects → 3llomi → iRecordView

3llomi / iRecordView

Licence: MIT license
A Simple Audio Recorder View with "hold to Record Button" and "Swipe to Cancel " Like WhatsApp

Programming Languages

swift
15916 projects
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to iRecordView

Chitoge
Just a Fork of Void. Not maintained anymore
Stars: ✭ 85 (+112.5%)
Mutual labels:  whatsapp
whatsapp-api-client
This library helps you easily create a javascript application with Whatsapp support
Stars: ✭ 39 (-2.5%)
Mutual labels:  whatsapp
WaGpScraper
A Python Oriented tool to Scrap WhatsApp Group Link using Google Dork it Scraps Whatsapp Group Links From Google Results And Gives Working Links.
Stars: ✭ 18 (-55%)
Mutual labels:  whatsapp
18-plus-Facebook-Phishing
18+Facebook-Phishing.Hack Facebook
Stars: ✭ 58 (+45%)
Mutual labels:  whatsapp
whatsapp-bot
Made with Python and Selenium, can be used to send multiple messages and send messages as characters made of emojis
Stars: ✭ 34 (-15%)
Mutual labels:  whatsapp
whatsapp-bot
This is a Node.js console app containing Whatsapp handler using reactive methods to response messages as chatbot. Simple but useful project to start developing a complex NON-OFFICIAL Whatsapp chatbots.
Stars: ✭ 33 (-17.5%)
Mutual labels:  whatsapp
WAProfileImage
WAProfileImage - A library for Android for choosing and editing profile image like WhatsApp
Stars: ✭ 29 (-27.5%)
Mutual labels:  whatsapp
react-native-compressor
The lightweight library for compress image, video, and audio with an awesome experience
Stars: ✭ 157 (+292.5%)
Mutual labels:  whatsapp
Stickerworld
Bot for whatsapp that automatically generates Sticker from the images or videos it receives
Stars: ✭ 47 (+17.5%)
Mutual labels:  whatsapp
sms-gaming
🎮 Gaming platform powered by Twilio SMS.
Stars: ✭ 111 (+177.5%)
Mutual labels:  whatsapp
whatsie
Qt Based WhatsApp Client
Stars: ✭ 437 (+992.5%)
Mutual labels:  whatsapp
wppconnect-php-client
Um simples cliente PHP que proporciona acesso fácil aos endpoints do WPPConnect Server.
Stars: ✭ 29 (-27.5%)
Mutual labels:  whatsapp
soan
Social Analysis based on Whatsapp data
Stars: ✭ 106 (+165%)
Mutual labels:  whatsapp
WaWebSessionHandler
(DISCONTINUED) Save WhatsApp Web Sessions as files and open them everywhere!
Stars: ✭ 27 (-32.5%)
Mutual labels:  whatsapp
Graphical notifications Zabbix
No description or website provided.
Stars: ✭ 77 (+92.5%)
Mutual labels:  whatsapp
whatsApp clone
Flutter WhatsClone (with Firebase + Clean Architecture) this app follow clean architecture proposed by our friendly Uncle Bob.
Stars: ✭ 181 (+352.5%)
Mutual labels:  whatsapp
wa-automate-docker
💬 🤖 The easiest way to turn your WhatsApp into an API. Be sure to 🌟 this repository for updates!
Stars: ✭ 75 (+87.5%)
Mutual labels:  whatsapp
nativesapp
Simple WhatsApp clone just for training purposes - Course Angular Native at www.udemy.com/angular-native
Stars: ✭ 19 (-52.5%)
Mutual labels:  whatsapp
whatsapp-chat-parser-website
Website to view your exported WhatsApp chat logs 👁‍🗨
Stars: ✭ 68 (+70%)
Mutual labels:  whatsapp
LevelDBDumper
Dumps all of the Key/Value pairs from a LevelDB database
Stars: ✭ 23 (-42.5%)
Mutual labels:  whatsapp

iRecordView

a Simple Audio Recorder View with hold to Record Button and Swipe to Cancel

Version License Platform

Demo

demo image

Installation

iRecordView is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'iRecordView'

Usage

add the views RecordButton and RecordView to your ViewController using Code or Storyboard

    let recordButton = RecordButton()
    recordButton.translatesAutoresizingMaskIntoConstraints = false

    let recordView = RecordView()
    recordView.translatesAutoresizingMaskIntoConstraints = false

    view.addSubview(recordButton)
    view.addSubview(recordView)

    recordButton.widthAnchor.constraint(equalToConstant: 35).isActive = true
    recordButton.heightAnchor.constraint(equalToConstant: 35).isActive = true

    recordButton.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -8).isActive = true
    recordButton.bottomAnchor.constraint(equalTo: view.safeBottomAnchor, constant: -16).isActive = true


    recordView.trailingAnchor.constraint(equalTo: recordButton.leadingAnchor, constant: -20).isActive = true
    recordView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 10).isActive = true
    recordView.bottomAnchor.constraint(equalTo: recordButton.bottomAnchor).isActive = true

now add your recordView to recordButton

    //IMPORTANT
    recordButton.recordView = recordView

now you can observe the states using the delegate

    recordView.delegate = self

this will give you 4 functions

    func onStart() {
    //start recording
    print("onStart")
    }
    
    func onCancel() {
    //when users swipes to delete the Record
    print("onCancel")
    }
    
    func onFinished(duration: CGFloat) {
    //user finished recording 
    print("onFinished \(duration)")
    }
    
    //optional
    func onAnimationEnd() {
    //when Trash Animation is Finished
    print("onAnimationEnd")
    }

Customization

//Cancel Record when Slide To Cancel view gets before duration time + offset  
recordView.offset = 20

//enable/disable Record Sounds
recordView.isSoundEnabled = true

recordView.durationTimerColor = .red

recordView.smallMicImage = myImage

recordView.slideToCancelText = "Test"

recordView.slideToCancelTextColor = .red

recordView.slideToCancelArrowImage = myImage

//to Handle Clicks by RecordButton you have to disable touch Gesture by using
recordButton.listenForRecord = false

Author

AbdulAlim Rajjoub

Thanks/Credits

RATTLESNAKE-VIPER for GLMoveToTrashAnimation

Looking for Android Version?

try out RecordView

Need a Chat app 💬 ?

Check out FireApp Chat

FireApp

License

iRecordView is available under the MIT license. See the LICENSE file for more info.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].