2016-08-18 20 views
8

Tôi đang tạo video & Ứng dụng thu âm thanh. Mỗi lần tôi bắt đầu thu âm, nhạc được phát trong loa bluetooth phát trong loa của điện thoại. Khi tôi thoát ứng dụng, nhạc sẽ phát lại trên loa bluetooth.Định tuyến lại âm thanh sang loa Bluetooth

nỗ lực đầu tiên của tôi để giải quyết này là cung cấp các tùy chọn cần thiết cho việc audioSession, như thế này:

try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord, withOptions: [AVAudioSessionCategoryOptions.MixWithOthers, AVAudioSessionCategoryOptions.AllowBluetooth]) 

Nhưng điều đó không làm việc. Vì vậy, giải pháp thứ hai của tôi mà tôi đang nghĩ là định tuyến lại đầu ra âm nhạc một lần nữa cho loa bluetooth.

tôi nghiên cứu về vấn đề này và tìm thấy chức năng này: audioSession.setOutputDataSource

tôi không thực sự biết các thông số được thông qua ở đó.

Và tôi không thực sự chắc chắn nếu trong thời điểm tôi bắt đầu quay video, điện thoại/hoặc mã của tôi vô hiệu hóa kết nối bluetooth hoặc nó chỉ định tuyến lại phát lại cho loa của điện thoại.

CẬP NHẬT: Tôi đã thống nhất ra dòng này: // try audioSession.setMode(AVAudioSessionModeMoviePlayback) và nhạc tạm dừng một chút và phát lại trên loa bluetooth. Nhưng vấn đề ở đây là video đã quay không có âm thanh.

CẬP NHẬT 2: Câu hỏi này có giải pháp nếu tôi cung cấp cho bạn mã của tôi không?

+0

Bạn đang cố gắng phát video qua bluetooth hoặc đầu ra mặc định xảy ra là bluetooth. Ví dụ, bạn có muốn nó phát qua bluethooth không có vấn đề gì, hoặc chỉ khi điện thoại/máy tính bảng được nối với đầu ra chính khác (như AUX hoặc bluetooth) –

Trả lời

0

Tôi sẽ tiếp tục và chụp ảnh trả lời câu hỏi gốc. Từ tài liệu của Apple s tôi đi này:

func setOutputDataSource(_ dataSource: AVAudioSessionDataSourceDescription?)throws 

thông sốdataSource

Nguồn dữ liệu cho đầu ra phiên âm thanh của.

outError Khi nhập, con trỏ đến một đối tượng lỗi. Nếu xảy ra lỗi, con trỏ được đặt thành đối tượng NSError mô tả lỗi . Nếu bạn không muốn thông tin lỗi, hãy chuyển vào nil. here

Trang này sẽ giúp bạn tìm ra những gì các phiên AV mô tả nguồn dữ liệu nào/lợi nhuận, nhưng trong mùa hè nó:

Bạn được giới thiệu nguồn dữ liệu từ đối tượng AVAudioSession chia sẻ hoặc các đối tượng AVAudioSessionPortDescription tương ứng với các cổng đầu vào và đầu ra của nó. Chỉ các cổng micrô tích hợp trên các thiết bị nhất định hỗ trợ vị trí, hướng và các đặc tính mẫu phân cực; nếu một cổng không hỗ trợ các tính năng này, giá trị của thuộc tính dataSources của nó là không. here

Bạn đang cố định tuyến nhạc từ ứng dụng của mình sang loa (là nhạc đang phát?) Hoặc là nhạc đến từ ứng dụng khác và bạn muốn có đầu ra kép?

Để kiểm tra lỗi, bạn có thể đảm bảo loa vẫn có sẵn, sử dụng một cái gì đó như output data source. Nếu nó trả về nill (null.) Có nghĩa là bạn không thể chuyển đổi giữa các nguồn dữ liệu.Nó có lẽ cũng đáng chú ý người sử dụng phải cho phép bạn ghi lại, tuy nhiên tôi nghi ngờ đây là vấn đề như bạn đã có được ghi âm tại một thời điểm, chỉ khi nó được chơi qua điện thoại, không phải là loa

+0

Tôi muốn loa bluetooth trở thành mặc định đầu ra nếu nó được kết nối. Hoặc nếu tôi có thể xuất âm thanh cho cả loa của điện thoại và loa bluetooth, nó cũng sẽ ổn. –

+0

Bạn sẽ không thể phát qua cả hai loa, chuyển hướng đầu ra sẽ ghi đè đường dẫn hiện có. Bạn có may mắn với setOutputDataSrouce không? Các đối số có cần thiết không? –

+0

Tôi không thực sự hiểu 'setOutputDataSource'. Tôi cần một mẫu sử dụng của xin vui lòng. –

Các vấn đề liên quan