3번째 실습 진행중 오류
동일하게 진행 하였습니다만
소리가 나지를 않습니다..
프로젝트 네비게이터에는 4개(3개의 소리, 1개의 스위프트파일)
을 넣어서 엑스코드에서는 소리가 들리는 것은 확인하였습니다.
실기기와 에뮬에서 실행하면 아무런 에러는 나오지 않습니다.
(디버깅 창에서)
이름을 변경하는 레이블은 잘 변경이 됩니다...
아래는 소스와 디버깅창입니다.. 따로 소리를 내기위해서는 설정해야 하는 부분이 있습니까?

Câu trả lời 2
2
안녕하세요, 정상원님.
마지막까지 학습하시고 좋은 질문 주셔서 감사합니다.
덕분에 저의 실수를 보완할 수 있는 설명을 드리게 되어서 다행으로 생각합니다.
먼저, 제가 착각한 부분은 사운드의 특성과 변수의 Scope에 대한 것 입니다.
사운드 파일은 그 특성상 재생에 시간이 걸립니다.
하지만 함수 내에 선언한 변수의 경우, 그 함수의 실행이 끝나면 바로 메모리에서 릴리즈 되어 버립니다.
변수 내에서 사운드를 재생한 경우, 사운드 재생에 대한 명령을 실행하자 마자
사운드 파일이 메모리에서 사라져 버려서 더 이상 재생을 못하게 된 경우 입니다.
위 그림과 같이 사운드가 재생되는 시간동안 그 함수에 머무르게 하면 사운드가 끝까지 재생되는 것을 확인할 수 있습니다.
그래서 정상원님이 책의 코드와 동일하게 작성한 것 처럼,
뷰 컨트롤러 레벨에서 사운드 변수를 선언하면, 함수에서는 빠져 나오더라도 사운드 파일은 존재하고 있으므로
사운드 재생을 마무리 할 수 있었던 거죠.
보통 실제 앱 개발시 사운드 재생 관련한 기능을 구현할 때는 ,
SimpleSound.swift 내부에서처럼 AudioServicesPlaySystemSound() 함수를 바로 사용하는게 아니라AVAudioPlayer 등의 보다 하이레벨 API를 사용해 이러한 고려를 하지 않아도 되는 방식을 사용합니다.
이 부분은 책의 범위를 벗어나지만 AVFoundation을 참고하시기 바랍니다.
도움이 되셨길 바랍니다.
감사합니다.
0

자문 자답입니다만..
교재로 쓰인 책에서는 소리변수는 따로 위로 빼서 작성하더라구요.
혹시나 해서 그대로 쳐보니 정상적으로 작동(소리남)하였습니다.
강의에서 작성하신 코드대로 하면 왜 안되는 것일까요?
let의 사용법에 관련된 것인가요...?
진로에 대한 질문...!
0
6
0
Static 선언 시 에러 발생
0
39
1
클로저의 형태로 만들다
0
43
1
Function Types Error
0
35
1
안드로이드 기기 실행 오류
0
46
2
수강연장 가능할까요...
0
54
2
강의에서 사용된 안드로이드 스튜디오 버전을 알고싶어요.
0
56
2
SwiftData 미리보기 미적용
0
53
2
중괄호와 함수
0
56
2
기본 뷰 디자인이 강사님과 다릅니다.
0
52
2
이미지 2x, 3x 질문
0
41
2
강의를 다 듣고난 후
0
66
2
android crud중 c 영상이 12초만 있는 잘린 영상이에요.
0
65
2
수강 기간 연장 문의
0
65
1
수강연장부탁드려도될까요..
0
82
2
Combine Playground 에서 실행 시
0
95
2
70강 - 글로벌 액터로 격리된 Protocol 을 extension 에서 conform 시 타입 본체의 격리 수준 질문
0
74
1
searchable이 화면 하단에 위치해요
0
92
2
Drawing Cycle 관련 질문
0
94
1
앱 제작 시 주로 코드로 작성하시는 이유가 있을까요?
0
129
2
델리게이트 패턴 관련 질문
0
101
2
Intro to App Development with Swift 책을 찾을 수 없습니다
0
310
1
로그
0
281
1
아무리봐도 assistant editor가 없습니다
0
751
1

