Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Equalizer View를 구현해요 #747

Merged
merged 10 commits into from
Jan 27, 2025
Merged

Conversation

Do-hyun-Kim
Copy link
Collaborator

@Do-hyun-Kim Do-hyun-Kim commented Jan 23, 2025

🔵PR을 올리기 전 아래 사항을 확인해주세요.

  • 구현한 로직과 기능이 올바르게 작동되는지 충분히 테스트해주세요.
  • 코드의 성능이나 메모리 효율성이 적절하게 고려되었는지, 불필요한 코드가 없는지 검토해주세요.
  • 이번 PR에서 구현된 주요 기능이나 해결된 문제에 대해 자세히 서술해주세요.
    (위 내용은 지워주세요)

😽음성 녹음 기능 구현을 위해 EqualizerView를 구현해요

🛠️ BBEqualizerView UI 구현

  • BBEqualizerView UI를 별도 구현했습니다.
  • 실시간으로 데시벨을 업데이트하여 Wave 파형을 그려야 하기 때문에 CADisplayIink를 사용하였습니다.
  • BBEqualizerView에 필요한 속성 값(WaveColor, dotColor, width, height)은 BBEqualizerConfig에 캡슐화하여 정의해놨습니다.

BBRecorderManger, Options, Core

  • AVAudioRecorder , AVAudioPlayer 관련 설정은 Options 모듈에 구현해 놨습니다.
  • BBRecorderCore는 정말 Core 한 것들만 구성해놨습니다. (주로 자주 사용하는 속성, 객체)
  • BBRecorderManger는 녹음, 재생을 기능을 구현하기 위해 필요한 메서드들을 구현해 놨습니다. 해당 기능들은 별도 Observable로 구현 해놨습니다.

🟡차후 계획 음성 댓글 관련 UseCase 추가 및 API 연동

  • 음성 댓글 관련 UseCase 추가 및 API 연동 로직을 추가하겠습니다.
  • 마이크 접근 권한 팝업 문구도 논의해 봐야 할 것 같아요.
  • 시간이 남으면 UnitTest도 해볼까 고민 중인데 이건 한번 보고?

🗾이미지 (Optional)

이미지①

✅테스트 케이스

  • 녹음 중 파형이 비선형(Non - Linear) 구조로 그려지는지 확인해요
  • 녹음이 잘 되는지 확인해요

🙏🏻아래와 같이 PR을 리뷰해주세요.

  • PR 내용이 부족하다면 보충 요청해주세요.
  • 코드 스타일이 팀의 규칙에 맞게 작성되었는지, 일관성을 유지하고 있는지 확인해주세요.
  • 코드에 대한 문서화나 주석이 필요한 부분에 적절하게 작성되어 있는지 확인해주세요.
  • 구현된 로직이 효율적이고 올바르게 작성되었는지, 아키텍처를 잘 준수하고 있는지 검토해주세요.
  • 네이밍, 포매팅, 주석 등 코드의 일관성이 유지되고 있는지 확인해주세요.

…der, AVAudioPlayer를 사용하기 위한 클래스들 추상화
- AVRecorder 데시벨 데이터 생성 활성화 하도록 수정
- AVAudioRecorderDelegateProxy 추가
- BBRecorderManger requestMicrophonePermission 옵저버블 Property 추가
- CommentViewController ViewController 진입 시 접근 권한 팝업 및 Record Session 초기 세팅 로직 추가
- BBEqualizerView Wave 파형 및 dot UI 구현
- BBRecorderCore  DocumentsPath AVRecorder, AVPlayer와 불 일치 이슈 수정
- BBRecorderManger AVRecorder Decibles 가져오는 메서드 추가
- BBRecorder Reactive+Extensions Observable 타입 Decibles 가져오는 타입 추가
- 녹음 UI 관련 image Assets 추가
- CommentTextFiledView  BBEqualizerView Decibels Bind 처리 로직 추가
- CommentTextFiledView  CurrentTime Bind 처리 로직 추가
-  Reactive+Ext  requestCurrentTime 옵저버블 추가
-  requestRecordDecibels Method 제거 및 AVInputNode를 사용하여 실시간 오디오 데이터 처리 로직 추가
@Do-hyun-Kim Do-hyun-Kim requested a review from akrudal January 23, 2025 10:28
@Do-hyun-Kim Do-hyun-Kim self-assigned this Jan 23, 2025
@Do-hyun-Kim Do-hyun-Kim marked this pull request as draft January 23, 2025 10:28
- Reactive+Extensions 데시벨 요청 옵저버블 로직 수정
- CommentTextFieldView EqualizerView 바인딩 처리 로직 수정
@Do-hyun-Kim Do-hyun-Kim marked this pull request as ready for review January 24, 2025 07:19
@Do-hyun-Kim Do-hyun-Kim merged commit cf95a3a into develop Jan 27, 2025
@Do-hyun-Kim Do-hyun-Kim deleted the feat/#728-add-equalizer-ui branch January 27, 2025 07:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant