This is a solution to the Dictionary web app challenge on Frontend Mentor. Frontend Mentor challenges help you improve your coding skills by building realistic projects.
- styling
- user Preferences
- Loading Screen
- Source attribution
- Switch between light and dark themes
- Suggestions
- Data fetching
- Error handling
- Play the audio file for a word when it's available
- Switch between serif, sans serif, and monospace fonts.
- other logic
- input
- React
- Tailwind
- Redux toolkit
- working with React-redux (especially with data fetching)
- working with audio.
currentTime
: Gets or sets the current playback position in seconds.duration
: Returns the duration of the audio in seconds.paused
: Indicates whether the audio is paused.ended
: Indicates whether the audio has ended.volume
: Gets or sets the audio volume, where 0 is muted, and 1 is full volume.muted
: Gets or sets whether the audio is muted.loop
: Gets or sets whether the audio should loop when it reaches the end.playbackRate
: Gets or sets the playback rate of the audio (e.g., 1 for normal speed, 2 for double speed, 0.5 for half speed).currentSrc
: Returns the URL of the currently playing audio source.paused
: Indicates whether the audio is paused.
play()
: Starts or resumes audio playback.pause()
: Pauses audio playback.load()
: Loads the audio file if it hasn't been loaded already.canPlayType(type)
: Checks if the browser can play audio of the specified type (e.g., "audio/mp3").seekTo(time)
: Seeks to a specific playback position in seconds.
onplay
: Fired when audio playback begins.onpause
: Fired when audio playback is paused.onended
: Fired when the audio has finished playing.ontimeupdate
: Fired as the playback position of the audio changes (e.g., during playback, while seeking).onvolumechange
: Fired when the audio volume or mute status changes.oncanplay
: Fired when enough of the audio has loaded to be able to play it.oncanplaythrough
: Fired when enough of the audio has loaded to play it smoothly without buffering interruptions.
Email: ebunoyebola.tech@gmail.com
Thanks to catalyst (@Catalyst497 on twitter) for collaboration.