01/10/2018, 11:53

MediaPlayer trong android không phát audio khi bấm liên tục vào button có chức năng phát 1 file audio?

chào các bạn
mình gặp 1 vấn đề về thư viện mediaplayer trong android dùng để phát file audio
mình có 9 button như sau , mỗi button khi click vào sẽ bắt sự kiện và phát 1 file audio

mình bắt sự kiện cho các button bằng android:onClick ngay tại xml
rồi viết hàm bắt sự kiện chung cho các button, phân biệt các button được bấm bằng switch,
vấn đề là khi bấm liên tục vào 1 button , hoặc có 48 button thì bấm đến button 25 thì có hiện tượng audio không phát nữa

các button trong xml

hàm bắt sự kiện các button, mp là biến private MediaPlayer mp; dùng để load audio cho từng button khác nhau

xincamon

HelloWorld viết 14:05 ngày 01/10/2018

help help help

chichi viết 13:55 ngày 01/10/2018

Thử thay mp.release(); bằng mp.stop() đi bạn
Link https://stackoverflow.com/questions/18362886/media-player-playing-multiple-files-at-the-same-time

HelloWorld viết 13:58 ngày 01/10/2018

ý bạn là thay mp.stop() bằng mp.release() à bạn

chichi viết 14:01 ngày 01/10/2018

uh bạn thử đc ko …

HelloWorld viết 14:02 ngày 01/10/2018

nó còn không phát audio được luôn :3

chichi viết 13:53 ngày 01/10/2018

bạn thử làm giống trên link stackoverflow trên xem đc ko

HelloWorld viết 14:04 ngày 01/10/2018

hình như mình thêm mp = null; sau khi release thì được rồi, nhưng phải test thêm chút :3 tks bạn

HelloWorld viết 13:57 ngày 01/10/2018

tiện cho mình hỏi luôn, với button ,mình đặt ảnh làm background cho nó, có hiệu ứng gì cho button để khi nào người dùng bấm vào thì nó có hiệu ứng báo là đã bấm button đó không nhỉ

chichi viết 14:06 ngày 01/10/2018

Hiệu ứng thì chắc đợi ông nào làm android vào chém, mình ko code android vừa nãy tiện google hộ thôi :))

Nguyễn Thanh Sang viết 13:58 ngày 01/10/2018
GitHub

daimajia/AndroidViewAnimations

AndroidViewAnimations - Cute view animation collection.

Bạn tham khảo ^^.

HelloWorld viết 13:55 ngày 01/10/2018

mình cần hiệu ứng cho button để biết vừa bấm vào button nào ấy bạn, mặc định các bản android 6 trở lên, có hiệu ứng dùng android:backround nhưng mình lại dùng nó cho ảnh đại diện button mất rồi, mình k dùng image button mà dùng button rồi thêm ảnh làm backround

Trần Gia Hưng viết 14:02 ngày 01/10/2018

Bạn thử search key word “ripple” xem sao?
Hoặc bạn có thể sử dụng imageview thay cho button (vì nó cũng dễ tùy biến) rồi thêm dòng android:background="?android:attr/selectableItemBackground" xem nó có đc không?

HelloWorld viết 13:55 ngày 01/10/2018

mình sử dụng button bình thường rồi thêm ảnh làm backgroud, thì có sử dụng được android:background="?android:attr/selectableItemBackground" k nhỉ. như này thì ảnh làm background của button mất , bù lại có hiệu ứng ripple

HelloWorld viết 14:04 ngày 01/10/2018

lúc đầu button của mình là ntn, mình dùng button thường và dùng ảnh làm background

        android:onClick="onClick"
        android:layout_weight="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button01"
        android:background="@drawable/image01" />

rồi mình thử dùng ripple như sau
button

    android:onClick="onClick"
    android:layout_weight="1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/button01"
    android:background="@drawable/button_selector" />

mình tạo button_selector.xml trong drawable có nội dung

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true"
        android:background="@drawable/image01"  />

    <!-- <item android:state_focused="true"
    android:drawable="@drawable/button_focused" /> -->

    <item android:background="@drawable/image02" />
</selector>

nhưng k được

Bài liên quan
0