Book reader — speed as a 5-option dropdown with multiplier labels
Replace the 3-way segmented speed control with a dropdown menu offering 0.5× / 0.75× / 1× / 1.25× / 1.5×, with evened-out underlying AVSpeech rates anchored at 1× = 0.50. Align the default saved rate to 0.50 so 1× is selected on a fresh install (was 0.45, which matched no option). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -32,7 +32,7 @@ struct BookReaderView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@AppStorage("bookReaderVoiceId") private var storedVoiceId: String = ""
|
@AppStorage("bookReaderVoiceId") private var storedVoiceId: String = ""
|
||||||
@AppStorage("bookReaderRate") private var storedRate: Double = 0.45
|
@AppStorage("bookReaderRate") private var storedRate: Double = 0.50
|
||||||
|
|
||||||
init(chapter: BookChapter) {
|
init(chapter: BookChapter) {
|
||||||
self.chapter = chapter
|
self.chapter = chapter
|
||||||
|
|||||||
@@ -42,11 +42,13 @@ struct BookVoicePickerSheet: View {
|
|||||||
Form {
|
Form {
|
||||||
Section("Speed") {
|
Section("Speed") {
|
||||||
Picker("Speed", selection: $rate) {
|
Picker("Speed", selection: $rate) {
|
||||||
Text("Slow").tag(Float(0.40))
|
Text("0.5×").tag(Float(0.30))
|
||||||
Text("Normal").tag(Float(0.50))
|
Text("0.75×").tag(Float(0.40))
|
||||||
Text("Fast").tag(Float(0.55))
|
Text("1×").tag(Float(0.50))
|
||||||
|
Text("1.25×").tag(Float(0.575))
|
||||||
|
Text("1.5×").tag(Float(0.65))
|
||||||
}
|
}
|
||||||
.pickerStyle(.segmented)
|
.pickerStyle(.menu)
|
||||||
}
|
}
|
||||||
|
|
||||||
if groups.isEmpty {
|
if groups.isEmpty {
|
||||||
|
|||||||
Reference in New Issue
Block a user