react-native-dtmf
Version:
React Native library capable of generating DTMF tones
76 lines (59 loc) • 2.55 kB
Markdown
# react-native-dtmf
## Getting started
`$ npm install react-native-dtmf --save`
### Automatic installation
`$ react-native link react-native-dtmf`
## Usage
```javascript
import dtmf from 'react-native-dtmf';
// Start playing back the tone corresponding to the number "2".
dtmf.startTone(dtmf.DTMF_2);
// 300ms later stop the tone.
setTimeout(() => {
dtmf.stopTone();
}, 300);
```
### API
Function | Description
--- | ---
<nobr>**startTone**(*tone*)</nobr> | This method starts the playback of a tone of the specified type for a maximum of 5 seconds.
<nobr>**playTone**(*tone*, *durationMs*)</nobr> | This method starts the playback of a tone of the specified type for the specified duration.
<nobr>**stopTone**()</nobr> | This method stops the tone currently playing.
### Constants
| Constant | Digit | Tone |
| -------- | ----- | ---------------- |
| DTMF_0 | 0 | 941 Hz + 1336 Hz |
| DTMF_1 | 1 | 697 Hz + 1209 Hz |
| DTMF_2 | 2 | 697 Hz + 1336 Hz |
| DTMF_3 | 3 | 697 Hz + 1477 Hz |
| DTMF_4 | 4 | 770 Hz + 1209 Hz |
| DTMF_5 | 5 | 770 Hz + 1336 Hz |
| DTMF_6 | 6 | 770 Hz + 1477 Hz |
| DTMF_7 | 7 | 852 Hz + 1209 Hz |
| DTMF_8 | 8 | 852 Hz + 1336 Hz |
| DTMF_9 | 9 | 852 Hz + 1477 Hz |
| DTMF_A | A | 697 Hz + 1633 Hz |
| DTMF_B | B | 770 Hz + 1633 Hz |
| DTMF_C | C | 852 Hz + 1633 Hz |
| DTMF_D | D | 941 Hz + 1633 Hz |
| DTMF_S | * | 941 Hz + 1209 Hz |
| DTMF_P | # | 941 Hz + 1477 Hz |
## Manual installation
### iOS
1. In XCode, in the project navigator, right click `Libraries` ➜ `Add Files to [your project's name]`
2. Go to `node_modules` ➜ `react-native-dtmf` and add `RNDtmf.xcodeproj`
3. In XCode, in the project navigator, select your project. Add `libRNDtmf.a` to your project's `Build Phases` ➜ `Link Binary With Libraries`
4. Run your project (`Cmd+R`)<
### Android
1. Open up `android/app/src/main/java/[...]/MainActivity.java`
- Add `import ca.bigdata.voice.dtmf.BigDataDTMFPackage;` to the imports at the top of the file
- Add `new BigDataDTMFPackage()` to the list returned by the `getPackages()` method
2. Append the following lines to `android/settings.gradle`:
```
include ':react-native-dtmf'
project(':react-native-dtmf').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-dtmf/android')
```
3. Insert the following lines inside the dependencies block in `android/app/build.gradle`:
```
compile project(':react-native-dtmf')
```