EarFun Free 2 True Wireless Earphones
EarFun Free 2 True Wireless Earphones
EarFun Free 2 True Wireless Earphones
EarFun Free 2 True Wireless Earphones
EarFun Free 2 True Wireless Earphones
EarFun Free 2 True Wireless Earphones
EarFun Free 2 True Wireless Earphones
EarFun Free 2 True Wireless Earphones
EarFun Free 2 True Wireless Earphones
EarFun Free 2 True Wireless Earphones
EarFun Free 2 True Wireless Earphones
EarFun Free 2 True Wireless Earphones
EarFun Free 2 True Wireless Earphones
EarFun Free 2 True Wireless Earphones
EarFun Free 2 True Wireless Earphones
EarFun Free 2 True Wireless Earphones
EarFun Free 2 True Wireless Earphones
EarFun Free 2 True Wireless Earphones

EarFun Free 2 True Wireless Earphones

Price

$0.00 $79.95
Save $-79.95
Free shipping

colour

Please select a colour

Quantity

Free worldwide shipping
Free returns
Sustainably made
Secure payments

Outstanding Performance

EarFun Free 2 features the latest Bluetooth 5.2 along with the supported aptX and AAC audio codecs, so you can expect rich, enhanced sound quality over smoother and uninterrupted audio streaming for the ultimate listening experience.

Stunning Call Experience
The EarFun Free 2 features 2 built-in professional calling microphone with Qualcomm cVc 8.0 technology that allows for better voice pickup during phone calls or while using voice commands via Siri or Google Assistant.

IPX7 Water Resistant with Sweatshield™ Technology
Never let bad weather or a challenging workout hold you back. EarFun Free 2 feature IPX7 rated water-resistant, along with innovative SweatShield tech for sweatproof.

Seamless Wireless Experience
Right ear, left ear, both ears? The TrueWireless Mirroring technology gives you a choice to seamlessly enjoy music or calls with either one or both earbuds.

All-day Comfort
With its ergonomic design, you can experience unbeatable sound in all-day comfort.

Freedom to Move
The compact case will bring great music along wherever your adventures take you.

Never Go Quiet
7 hours continuous listening with a single charge. 30 hours of listening with multiple charge in case. 10 min (wired) charging which is equal to 2 hours playtime

Customer Reviews

Here are what our customers say.

Write a Review
Customer Reviews
Wow you reached the bottom
Newest
Most liked
Highest ratings
Lowest ratings
×
class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) { super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() { this.action = SPZServices.actionServiceForDoc(this.element); this.registerAction('upload', (data) => { this.handleFileUpload_(data.event?.detail?.data || []); }); this.registerAction('delete', (data) => { this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview', (data) => { this.handleFilePreview_(data?.args?.data); }); this.registerAction('limit', (data) => { this.handleFileLimit_(); }); this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; } handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url === i.url)) return; this.fileList_.push(i); }) this.uploadCount_++; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_}); if(this.fileList_.length >= 5){ document.querySelector('#review_upload').style.display = 'none'; } if(this.fileList_.length > 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1); this.uploadCount_--; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; if(this.fileList_?.length === 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px'; } } handleFilePreview_(index) { const finalPreviewData = this.fileList_[index]; const filePreviewModal = document.getElementById('filePreviewModal'); const fullScreenVideo = document.getElementById('fullScreenVideo'); const fullScreenImage = document.getElementById('fullScreenImage'); const previewModalClose = document.getElementById('previewModalClose'); const previewLoading = document.getElementById('previewLoading'); filePreviewModal.style.display = 'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { previewLoading.style.display = 'none'; }); fullScreenImage.src = ''; fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = ''; fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { filePreviewModal.style.display = 'none'; }); } handleFileLimit_() { alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() { alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; } mediaParse_(url) { var result = {}; try { url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try { result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; } }); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name, data); this.action.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload);
The review would not show in product details on storefront since it does not support to.