Does infuse support fragment playback? My code doesn't work

I used chunkSize to slice the video file and returned parameters such as Content-Range. Infuse did not play properly, but IINA and web browsers could access my interface and play the video normally. I found that only when the 200 status code and all the files are returned, the video will play, otherwise it will report an error.
Can someone check this?
Below is my code:

func minioInit() *minio.Client {
	minioClient, _ := minio.New("play.min.io",
		&minio.Options{
			Creds: credentials.NewStaticV4("Q3AM3UQ867SPQQA43P2F",
				"zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG",
				""),
			Secure: true,
		})
	return minioClient
}

func Test(c *gin.Context) {
	// minio client,play.minio.io
	minioClient := minioInit()
	bucketName := "infuset"
	objectName := "View_From_A_Blue_Moon_Trailer-720p.mp4"
	rangeHeader := c.GetHeader("Range")
	var startByte, endByte int64 = 0, -1
	// get range from request
	if rangeHeader != "" {
		rangeData := strings.Split(strings.TrimPrefix(rangeHeader, "bytes="), "-")
		startByte, _ = strconv.ParseInt(rangeData[0], 10, 64)
		if len(rangeData) > 1 && rangeData[1] != "" {
			endByte, _ = strconv.ParseInt(rangeData[1], 10, 64)
		}
	}
	// get object state
	info, err := minioClient.StatObject(context.Background(), bucketName, objectName, minio.StatObjectOptions{})
	if err != nil {
		handleErrors(c, fmt.Errorf("error stating object: %w", err))
		return
	}
	// set the endSize of this object, but infuse does not support it,iina and web works well
	chunkSize := int64(4 * 1024 * 1024) // every chunk size 4MB
	if endByte == -1 {
		endByte = startByte + chunkSize - 1
		if endByte >= info.Size {
			endByte = info.Size - 1
		}
	}
	// infuse works well with this,not just a chunk
	//if endByte == -1 {
	//	endByte = info.Size - 1
	//}
	opts := minio.GetObjectOptions{}
	// set range for this object
	if err = opts.SetRange(startByte, endByte); err != nil {
		handleErrors(c, fmt.Errorf("error setting range: %w", err))
		return
	}
	// get chunk from minio
	object, err := minioClient.GetObject(c, bucketName, objectName, opts)
	if err != nil {
		handleErrors(c, fmt.Errorf("error getting object: %w", err))
		return
	}
	defer func(object *minio.Object) {
		err := object.Close()
		if err != nil {
			global.Log.Error("error at object close", zap.Error(err))
		}
	}(object)
	contentRange := fmt.Sprintf("bytes %d-%d/%d", startByte, endByte, info.Size)
	c.Header("Content-Range", contentRange)
	c.Header("Content-Length", strconv.FormatInt(endByte-startByte+1, 10))
	c.Header("Accept-Ranges", "bytes")
	// return the chunk to the client
	c.DataFromReader(206, endByte-startByte+1, "video/mp4", object, nil)
	// infuse works well with this,and it is necessary to get all the object,not just a chunk
	//c.DataFromReader(200, endByte-startByte+1, "video/mp4", object, nil)
}

This is not supported at this time.