xref: /MusicFree/src/pages/musicDetail/components/bottom/playControl.tsx (revision cdc698422903b4b0c83c41d166b21516f7b6ce9b)
14060c00aS猫头猫import React from 'react';
24060c00aS猫头猫import {StyleSheet, View} from 'react-native';
3bf6e62f2S猫头猫import rpx from '@/utils/rpx';
4bf6e62f2S猫头猫import repeatModeConst from '@/constants/repeatModeConst';
5c15039e2S猫头猫
6c446f2b8S猫头猫import useOrientation from '@/hooks/useOrientation';
7c15039e2S猫头猫import {showPanel} from '@/components/panels/usePanel';
85500cea7S猫头猫import TrackPlayer from '@/core/trackPlayer';
95500cea7S猫头猫import {musicIsPaused} from '@/utils/trackUtils';
105589cdf3S猫头猫import Icon from '@/components/base/icon.tsx';
11bf6e62f2S猫头猫
124060c00aS猫头猫export default function () {
135500cea7S猫头猫    const repeatMode = TrackPlayer.useRepeatMode();
145500cea7S猫头猫    const musicState = TrackPlayer.useMusicState();
15c15039e2S猫头猫
16c446f2b8S猫头猫    const orientation = useOrientation();
17bf6e62f2S猫头猫
18bf6e62f2S猫头猫    return (
19bf6e62f2S猫头猫        <>
20c446f2b8S猫头猫            <View
21c446f2b8S猫头猫                style={[
22c446f2b8S猫头猫                    style.wrapper,
23c446f2b8S猫头猫                    orientation === 'horizonal'
24c446f2b8S猫头猫                        ? {
25c446f2b8S猫头猫                              marginTop: 0,
26c446f2b8S猫头猫                          }
27c446f2b8S猫头猫                        : null,
28c446f2b8S猫头猫                ]}>
29bf6e62f2S猫头猫                <Icon
30bf6e62f2S猫头猫                    color={'white'}
31bf6e62f2S猫头猫                    name={repeatModeConst[repeatMode].icon}
32bf6e62f2S猫头猫                    size={rpx(56)}
33bf6e62f2S猫头猫                    onPress={() => {
345500cea7S猫头猫                        TrackPlayer.toggleRepeatMode();
354060c00aS猫头猫                    }}
364060c00aS猫头猫                />
37bf6e62f2S猫头猫                <Icon
38bf6e62f2S猫头猫                    color={'white'}
395589cdf3S猫头猫                    name={'skip-left'}
40bf6e62f2S猫头猫                    size={rpx(56)}
41bf6e62f2S猫头猫                    onPress={() => {
425500cea7S猫头猫                        TrackPlayer.skipToPrevious();
434060c00aS猫头猫                    }}
444060c00aS猫头猫                />
45bf6e62f2S猫头猫                <Icon
46bf6e62f2S猫头猫                    color={'white'}
47*cdc69842S猫头猫                    name={musicIsPaused(musicState) ? 'play' : 'pause'}
48bf6e62f2S猫头猫                    size={rpx(96)}
49bf6e62f2S猫头猫                    onPress={() => {
50bf6e62f2S猫头猫                        if (musicIsPaused(musicState)) {
515500cea7S猫头猫                            TrackPlayer.play();
52bf6e62f2S猫头猫                        } else {
535500cea7S猫头猫                            TrackPlayer.pause();
54bf6e62f2S猫头猫                        }
554060c00aS猫头猫                    }}
564060c00aS猫头猫                />
57bf6e62f2S猫头猫                <Icon
58bf6e62f2S猫头猫                    color={'white'}
595589cdf3S猫头猫                    name={'skip-right'}
60bf6e62f2S猫头猫                    size={rpx(56)}
61bf6e62f2S猫头猫                    onPress={() => {
625500cea7S猫头猫                        TrackPlayer.skipToNext();
634060c00aS猫头猫                    }}
644060c00aS猫头猫                />
65bf6e62f2S猫头猫                <Icon
66bf6e62f2S猫头猫                    color={'white'}
675589cdf3S猫头猫                    name={'playlist'}
68bf6e62f2S猫头猫                    size={rpx(56)}
69bf6e62f2S猫头猫                    onPress={() => {
70bf6e62f2S猫头猫                        showPanel('PlayList');
714060c00aS猫头猫                    }}
724060c00aS猫头猫                />
73bf6e62f2S猫头猫            </View>
74bf6e62f2S猫头猫        </>
75bf6e62f2S猫头猫    );
76bf6e62f2S猫头猫}
77bf6e62f2S猫头猫
78bf6e62f2S猫头猫const style = StyleSheet.create({
79bf6e62f2S猫头猫    wrapper: {
804245d81aS猫头猫        width: '100%',
81bf6e62f2S猫头猫        marginTop: rpx(36),
82bf6e62f2S猫头猫        height: rpx(100),
83bf6e62f2S猫头猫        flexDirection: 'row',
84bf6e62f2S猫头猫        justifyContent: 'space-around',
85bf6e62f2S猫头猫        alignItems: 'center',
86bf6e62f2S猫头猫    },
87bf6e62f2S猫头猫});
88