2010-05-13 42 views
6

Flash IDE có khả năng nhúng nhiều loại tệp âm thanh không nén, bao gồm wav và cung cấp nén tùy chọn khi xuất bản.Nhúng tệp wav vào dự án AS3 Flash/Flex?

Tuy nhiên, thẻ [Nhúng], dường như chỉ cho phép nhúng tệp mp3. Có thực sự không thể nhúng một tệp wav không nén, hoặc tôi thiếu một số ma thuật, mimeType không có giấy tờ?

Tôi đã hy vọng cho một cái gì đó như:

[Embed source="../../audio/wibble.wav" mimeType="audio/wav"] 

... nhưng tôi nhận

no transcoder registered for mimeType 'audio/wav' 

Có thể nhúng wav hay định dạng khác như là một octet-stream và phân tích trong thời gian chạy, nhưng đó là khá nặng tay tôi nghĩ.

Tôi ngạc nhiên rằng mặc dù Flash IDE có thể nhúng dữ liệu âm thanh không nén, [Nhúng] không thể, do thông số swf có thể chứa dữ liệu âm thanh không nén.

Bất kỳ người dùng nào?

Trả lời

14

Từ LiveDocs - Basics of working with sound:

[...] Mặc dù có rất nhiều tập tin âm thanh định dạng sử dụng để mã hóa âm thanh kỹ thuật số, ActionScript 3.0, Flash Player và AIR hỗ trợ các file âm thanh đó là được lưu trữ ở định dạng mp3 . Họ không thể trực tiếp tải hoặc phát tệp âm thanh ở các định dạng khác như WAV hoặc AIFF. [...]

Nhưng dường như có một giải pháp thay thế. Kiểm tra bài # 3 trong this thread from actionscript.org:

Trả lời cho bản thân mình trong trường hợp có ai có cùng một câu hỏi trong tương lai và là tìm kiếm một câu trả lời.

Tôi không thể tìm thấy bất kỳ hỗ trợ trực tiếp nào cho việc gắn các tệp WAV trong ứng dụng Flex Builder 3/ActionScript 3. Những gì tôi đã cố gắng và vui mừng khi thấy nó hoạt động là tạo Phim Flash trong Flash CS 3 (bạn sẽ cần sở hữu hoặc nhận đánh giá) và nhập âm thanh vào thư viện và liên kết chúng với được xuất bởi ActionScript. Xuất khẩu dự án Flash CS3 sang một bộ phim SWF và lưu nó vào dự án của bạn (Tôi đã thêm nó vào một "thư mục lib").

mã ActionScript của bạn để tạo ra và chơi âm thanh nên là:

[Embed(source="lib/Sounds.swf", symbol="BigShipSound")] 
private static var BigShipSound: Class; 
... 
var bigShipSound : Sound = BigShipSound as Sound; 
bigShipSound.play(0, 20); 
+0

Ah chết tiệt ... tốt, mặc dù rõ ràng là "không, bạn không thể" đó là một giải pháp tốt như tôi sẽ nhận được. Chúc mừng Baelnorn! – aaaidan

1

Trình phát Flash không biết cách phát trực tiếp các tệp wav. Đúng là bạn có thể nhập chúng vào công cụ authoring, nhưng khi bạn xuất bản SWF, âm thanh của bạn sẽ được chuyển thành mp3 hoặc adpcm hoặc bất kỳ thứ gì bạn chọn trong cài đặt xuất bản của mình. Ngay cả khi bạn đọc trong một wav trong thời gian chạy, cách duy nhất để chơi nó là phân tích cú pháp luồng nhị phân, vì vậy tự nhiên cùng một giới hạn áp dụng nếu bạn nhúng tệp.

Một số thông tin có liên quan tại this question. Điều bạn tò mò có vẻ đã nhận xét vào năm ngoái! :)

+0

thế giới nhỏ, huh? Vâng, bạn nói đúng về wav được mã hóa bất kể bạn làm gì, nhưng tôi đoán điều làm tôi thất vọng là bạn không thể có ứng dụng as3 nhúng dữ liệu âm thanh RAW (hoặc bất kỳ thứ gì ngoại trừ mp3) và chơi nó bằng Flash " native "sound player (tức là, không sử dụng sự kiện SAMPLE_DATA). Đào? – aaaidan

7

Có một thư viện bạn có thể sử dụng

http://code.google.com/p/as3wavsound/

+0

Điều đó khá thú vị! Tôi đã hy vọng để tránh các chi phí cpu của đi qua các dữ liệu wav thông qua một sự kiện SAMPLE_DATA tại thời gian chạy, đó là những gì thư viện này không (như các cầu thủ "bản địa" chắc chắn là ít tham lam). – aaaidan

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