HomeFragment - GachonCapstoneTeam/TTS_JAVA GitHub Wiki
HomeFragment
๋ ํ ํ๋ฉด์์ ์ฌ์ฉ์์๊ฒ ์ต์ ๋ฆฌํฌํธ ๋ชฉ๋ก์ ๋ณด์ฌ์ฃผ๊ณ , TTS ๊ธฐ๋ฐ์ ์ค๋์ค ์ฌ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๋ํ Shimmer ๋ก๋ฉ, ๋ฆฌํฌํธ ํํฐ๋ง, ์ค๋์ค ํ๋ ์ด์ด UI ์กฐ์ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ ์ํํฉ๋๋ค.
๊ธฐ๋ฅ | ์ค๋ช |
---|---|
๋ฆฌํฌํธ ๋ฆฌ์คํธ ํ์ | ์๋ฒ์์ ์ต์ ๋ฆฌํฌํธ๋ฅผ ๋ฐ์ RecyclerView์ ํ์ |
TTS ์ค๋์ค ์ฌ์ | ํญ๋ชฉ ํด๋ฆญ ์ TTS ๋ณํ ํ ์ค๋์ค ์ฌ์ |
์ฌ์ฉ์ ์ธํฐ๋์ | ์ฌ์/์ผ์์ ์ง, ์ด์ /๋ค์ ํธ๋, ์ ์ฒดํ๋ฉด ์ฌ์ ์ง์ |
์ฆ๊ฒจ์ฐพ๊ธฐ ํํฐ๋ง | SharedPreferences ๊ธฐ๋ฐ ์ฆ๊ฒจ์ฐพ๊ธฐ ํํฐ ํ์ |
๋ก๋ฉ ์ ๋๋ฉ์ด์ | ์๋ฒ ์๋ต ์ Shimmer๋ก ๋ก๋ฉ ์ค UI ํ์ |
์ค๋์ค ์งํ ํ์ | SeekBar๋ก ์ค๋์ค ์ฌ์ ์๊ฐ ํ์ ๋ฐ ์ ์ด |
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url(url).get().build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) throws IOException {
String jsonResponse = response.body().string();
List<Item> items = parseAndSetData(jsonResponse);
// UI ์
๋ฐ์ดํธ๋ main thread์์ ์ํ
}
});
- OkHttp๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๊ธฐ๋ก ๋ฆฌํฌํธ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ณ , JSON ์๋ต์ ํ์ฑํ์ฌ ๋ฆฌ์คํธ์ ๋ฐ์ํฉ๋๋ค.
ttsHelper.performTextToSpeech(item.getContent(), filename, audioFile -> {
if (audioFile.exists()) {
audioService.prepareAudio(audioFile.getAbsolutePath(), 0, true);
}
});
- ํด๋ฆญ๋ ํญ๋ชฉ์ ํ
์คํธ๋ฅผ TTS๋ก ์ค๋์ค ํ์ผ๋ก ๋ณํํ ๋ค,
AudioService
๋ฅผ ํตํด ์ฌ์ํฉ๋๋ค.
SharedPreferences prefs = requireContext().getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
for (Map.Entry<String, ?> entry : prefs.getAll().entrySet()) {
if (entry.getKey().startsWith("liked_")) {
Item item = gson.fromJson(entry.getValue().toString(), Item.class);
likedItems.add(item);
}
}
- SharedPreferences์์ ํค ์ด๋ฆ์ด
"liked_"
๋ก ์์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ ๋ฆฌ์คํธ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
audioService.setProgressUpdateListener((current, total) -> {
seekBar.setProgress((int)((current / (float) total) * 100));
});
- ์ค๋์ค ์ฌ์ ์๊ฐ์ ๋ฐ๋ผ SeekBar๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธํ์ฌ ์งํ ์ํ๋ฅผ ์๊ฐํํฉ๋๋ค.
ShimmerAdapter shimmerAdapter = new ShimmerAdapter(5);
recyclerView.setAdapter(shimmerAdapter);
shimmerLayout.startShimmer();
- ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๋ ๋์
ShimmerAdapter
๋ก ์ค์ผ๋ ํค ๋ทฐ๋ฅผ ๋ณด์ฌ์ฃผ๊ณ , ๋ก๋ฉ ์๋ฃ ์ ์ค์ ์ด๋ํฐ๋ก ๊ต์ฒดํฉ๋๋ค.
-
ItemAdapter
: ํ ํ๋ฉด ๋ฆฌ์คํธ๋ฅผ ์ํ ์ด๋ํฐ -
AudioService
: ์ฌ์ ์ํ ์ ์ง ๋ฐ ์ค๋์ค ์ปจํธ๋กค ์ฒ๋ฆฌ -
TTSHelper
: ํ ์คํธ๋ฅผ MP3๋ก ๋ณํํด์ฃผ๋ ํฌํผ ์ ํธ๋ฆฌํฐ