1import React from 'react';
2import { Asset } from 'expo-asset';
3import { ScrollView, StyleSheet, PixelRatio } from 'react-native';
4import { Audio } from 'expo-av';
5
6import ListButton from '../../components/ListButton';
7import HeadingText from '../../components/HeadingText';
8
9import Player from './AudioPlayer';
10import AudioModeSelector from './AudioModeSelector';
11
12export default class AuthSessionScreen extends React.Component {
13  static navigationOptions = {
14    title: 'Audio',
15  };
16
17  _setAudioActive = (active: boolean) => () => Audio.setIsEnabledAsync(active);
18
19  render() {
20    return (
21      <ScrollView contentContainerStyle={styles.contentContainer}>
22        <HeadingText>Audio state</HeadingText>
23        <ListButton title="Activate Audio" onPress={this._setAudioActive(true)} />
24        <ListButton title="Deactivate Audio" onPress={this._setAudioActive(false)} />
25        <HeadingText>Audio mode</HeadingText>
26        <AudioModeSelector />
27        <HeadingText>HTTP player</HeadingText>
28        <Player
29          source={{
30            uri:
31            // tslint:disable-next-line: max-line-length
32              'https://p.scdn.co/mp3-preview/f7a8ab9c5768009b65a30e9162555e8f21046f46?cid=162b7dc01f3a4a2ca32ed3cec83d1e02',
33          }}
34          style={styles.player}
35        />
36        <HeadingText>Local asset player</HeadingText>
37        <Player
38          source={Asset.fromModule(require('../../../assets/sounds/polonez.mp3'))}
39          style={styles.player}
40        />
41      </ScrollView>
42    );
43  }
44}
45
46const styles = StyleSheet.create({
47  contentContainer: {
48    padding: 10,
49  },
50  player: {
51    borderBottomWidth: 1.0 / PixelRatio.get(),
52    borderBottomColor: '#cccccc',
53  },
54});
55